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/>";
?>
说明:
一维数组的话,第三种算法比第一种快点。
上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?
这里提供一种思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。
例子:
<?php
function toarr($arr){ //
对数组进行递归,以字符串形式返回
foreach ($arr as $k=>$v){
if (!is_array($v)) {
$str.=$v." ";
}
else{
$str.=toarr($v);
}
}
return $str;
}/*递归函数结束*/
?>
以上代码实现多维数组转化成字符串,然后使用
expode 函数转化成一维数组即可。
试想一下,数据库返回某一字段重名的值也是这个道理,这个通过
sql 语句也是可以实现
的。