2013-10-11 195 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