2013-10-11 323 views
0
位置

我有兩個陣列,比較兩個陣列

$a= array(1,2,3,4,5); 
$b= array(2,1,4,4,5); 

,我想打印(4,5),因爲它是它與相同位置上的給定陣列中的相同的元素。

回答

0

如何:

$length = count($a); 
$same = array(); 

for($i = 0; $i < $length; $i++) { 
    if($a[$i] == $b[$i]) { 
     $same[] = $a[$i]; 
    } 
} 
+0

非常感謝喬治,我是新來的,你非常漂亮的幫助我,非常感謝。 – Swapnil

0
$c = array(); 
foreach($a as $key => $val) { 
    if($val == $b[$key]) { 
     $c[] = $val; 
    } 
} 

var_dump($c); 

輸出:

array(2) { 
    [0]=> 
    int(4) 
    [1]=> 
    int(5) 
} 
+1

我認爲你的意思是'$ key'而不是'key';) –

+0

感謝您指出,糾正:) – mushroom

0

你應該能夠使用array_intersect_assoc()這樣的:

$a = array(1,2,3,4,5); 
$b = array(2,1,4,4,5); 
$array = array_intersect_assoc($a, $b); 
var_dump($array); 

array_intersect_assoc()功能也執行到array_intersect(),但它會添加一個額外的密鑰檢查以驗證密鑰是否匹配。

+0

您編輯的答案對我來說非常有用,使用這個快捷方式我可以做簡短的程序。謝謝你 - #邁克 – Swapnil