PHP输出数组中重名的元素的几种处理方法


Posted in PHP onSeptember 05, 2012

1.可以直接用php的内置函数array_intersect()
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
代码:

<?php 
$array1 = array("a" => "green", "red", "blue"); 
$array2 = array("b" => "green", "yellow", "red"); 
$result = array_intersect($array1, $array2); 
?>

输出结果:
Array( [a] => green [0] => red)
2.也可以自己写一个算法:
<?php 
function my_array_same($a){ 
$b = array_unique($a); 
$r = array_diff_key($a,$b); 
echo "<pre>"; 
$k=var_dump(array_unique($r)); 
return $k; 
} 
$a = array("red", "green", "pink", "red", "yellow","pink", "red"); 
$r=my_array_same($a); 
var_dump(array_unique($r)); 
?>

输出结果:
array(2) {
[3]=>
string(3) "red"
[5]=>
string(4) "pink"
}
3.还可以这么写:
<?php 
function my_array_intersect($arr1,$arr2){ 
for($i=0;$i<count($arr1);$i++){ 
$temp[]=$arr1[$i]; 
} 
for($i=0;$i<count($arr1);$i++){ 
$temp[]=$arr2[$i]; 
} 
sort($temp); 
$get=array(); 
for($i=0;$i<count($temp);$i++){ 
if($temp[$i]==$temp[$i+1]) 
$get[]=$temp[$i]; 
} 
return $get; 
} 
$array1 = array("green", "red", "blue"); 
$array2 = array("green", "yellow", "red"); 
echo "<pre>"; 
print_r(my_array_intersect($array1, $array2)); 
echo "<pre/>"; 
?>

如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?

思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。

代码:

function toarr($arr){ //对数组进行递归,以字符串形式返回 
foreach ($arr as $k=>$v){ 
if (!is_array($v)) { 
$str.=$v." "; 
} 
else{ 
$str.=toarr($v); 
} 
} 
return $str; 
}/*递归函数结束*/

上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。

联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。

PHP 相关文章推荐
php google或baidu分页代码
Nov 26 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP通过串口实现发送短信
Jul 08 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
Feb 06 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
PHP执行linux命令6个函数代码实例
Nov 24 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 #PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 #PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
Sep 05 #PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 #PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 #PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 #PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 #PHP
You might like
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
XML的代替者----JSON
2007/07/21 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
JQuery控制图片由中心点逐渐放大效果
2016/06/26 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
新手简单了解vue
2019/05/29 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python更新所有已安装包的操作
2020/02/13 Python
Python中的Cookie模块如何使用
2020/06/04 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
自我评价格式
2014/01/06 职场文书
爱护草坪标语
2014/06/24 职场文书
银行转正自我鉴定
2014/09/29 职场文书
2019毕业论文致谢词
2019/06/24 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python