background image

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