PHP比较二维数组

问题描述:

我想知道如何比较两个二维数组的值。PHP比较二维数组

第一阵列

Array 1 
(
    [0] => Array 
     (
      [0] => a 
     ) 

    [1] => Array 
     (
      [0] => b 
     ) 

    [2] => Array 
     (
      [0] => c 
     ) 

} 

第二个

Array 2 
(
    [0] => Array 
     (
      [0] => a 
     ) 

    [1] => Array 
     (
      [0] => d 
     ) 

    [2] => Array 
     (
      [0] => e 
     ) 

} 

我需要让我的循环比较阵列和检查匹配的值。在我的例子中,array1 [0] [0] = a匹配array2 [0] [0] = a。如果匹配,php会输出一些html。

我foreach循环

foreach ($array1 as $arrays){ 
    foreach($arrays as $array){ 
     //need to compare array2 here not sure how to do it. 
    } 
} 
+0

“我需要知道我的循环是否可以比较数组以检查匹配的值。” - 好吧,保存你的文件并试试看吧) – miku 2010-05-30 02:44:38

+0

....我没有任何东西可以尝试...... :( – FlyingCat 2010-05-30 02:46:13

foreach($array1 as $k1 => $arrays) { 
    foreach($arrays as $k2 => $val) { 

     if($array2[$k1][$k2] == $val) { 
      // $array1[$k1][$k2] is equal to $array2[$k1][$k2] 
     } 
    } 
} // end of foreach 

foreach($a as $k => $v)语法做同样的事情为foreach($a as $v),但它也使与该值关联到$k的关键。

+1

感谢您的帮助。琥珀 – FlyingCat 2010-05-30 03:07:29

+0

@mattbasta:No ,它不应该。 – Amber 2010-05-30 03:16:27

您可以使用array_diff_assoclike所以

if(count(array_diff_assoc($array1,array2) != 0)) 
{ 
    //Arrays are not the same 
}else{ 
    echo 'these following items are differing in throughout the arrays . ' . print_r(array_diff_assoc($array1,array2),true); 
} 

希望这有助于你。

另请注意array_diff_assoc,它返回的数组项与其他数组(包括其索引键)发现不同。

+1

应该指出的是这个函数是SLOOOOOWWWWWWW。如果你有小阵列,但是当你添加很多元素时,它的指数变慢了 – mattbasta 2010-05-30 03:06:25

+0

Amber得到了我需要的东西,谢谢你的提示,但是+1 – FlyingCat 2010-05-30 03:07:00

+0

这是一个非常好的点先生 – RobertPitt 2010-05-30 03:07:15