2013-07-15 60 views
10

得到共同的價值觀,我有兩個陣列,一些用戶ID如何從兩個不同的陣列在PHP

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

我需要的是,我需要從數組中共同的價值觀是什麼如下

$array3 = array(0=>"38", 1=>"42"); 

我試過array_intersect()。我想獲得一個方法,這需要最少的執行時間。請幫助我的朋友。

+5

'array_intersect()'仍然是最好的選擇。 –

+0

http://php.net/manual/en/function.array-intersect.php –

+3

'array_intersect'有什麼問題?它不可能太慢? – deceze

回答

23

原生PHP函數比嘗試構建自己的算法要快。

$result = array_intersect($array1, $array2); 
1

使用這一項,雖然這也許很長的方法:

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

$final_array = array(); 

foreach($array1 as $key=>$val){ 
    if(in_array($val,$array2)){ 
     $final_array[] = $val; 
    } 
} 

print_r($final_array); 

結果:陣列([0] => 38 [1] => 42)

+1

你能提出一個原因,你的答案是更好的選擇array_intersect ... – Sir

1

我想你不「T需要使用$key=>$value您的問題,所以檢查這個答案:

<?php 
$array1 = array("5", "26", "38", "42"); 
$array2 = array("15", "36", "38", "42"); 

foreach ($array1 as $value) { 
    if (in_array($value, $array2)) { 
     $array3[] = $value; 
    } 
} 

print_r($array3); 
?> 
0

array_intersect()的作品就好了。

陣列array_intersect(數組$數組1,數組$數組2 [,數組$ ...] )

$array1 = array("5","26","38","42"); 

$array2 = array("15","36","38","42"); 

echo array_intersect($array1, $array2); 

http://fr2.php.net/array_intersect