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
;