1.可以直接用php的内置函数array_intersect()
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
代码:
复制代码 代码如下:
green, red, blue);
$array2 = array(b => green, yellow, red);
$result = array_intersect($array1, $array2);
?>
输出结果:
array( [a] => green [0] => red)
2.也可以自己写一个算法:
复制代码 代码如下:
输出结果:
array(2) {
[3]=>
string(3) red
[5]=>
string(4) pink
}
3.还可以这么写:
复制代码 代码如下:
如果是一维的数组,第三种算法比第一种快点.上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?
思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。
代码:
复制代码 代码如下:
function toarr($arr){ //对数组进行递归,以字符串形式返回
foreach ($arr as $k=>$v){
if (!is_array($v)) {
$str.=$v. ;
}
else{
$str.=toarr($v);
}
}
return $str;
}/*递归函数结束*/
上式把多维数组转化成字符串,然后利用expode函数转化成一维数组即可。
联想一下,数据库返回某一字段重名的值也是这个道理,当然通过sql语句也能够实现。
http://www.bkjia.com/phpjc/325862.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/325862.htmltecharticle1.可以直接用php的内置函数array_intersect() array array_intersect ( array $array1 , array $array2 [, array $ ... ] ) array_intersect() 返回一个数组,该数组包含了...