如何检查两个数组是否相同

时间:2013-11-07 10:30:01

标签: php arrays compare

这是我的数组

[51] => Array
    (
        [171] => 34
        [170] => Adult
        [168] => 32
        [quantity] => 1
    )

[52] => Array
    (
        [171] => 34
        [170] => Adult
        [168] => 32
        [quantity] => 1
    )

现在,如果除了数量之外的所有键和值都相同,那么将添加数量。

例如:

 [51] => Array
    (
        [171] => 34
        [170] => Adult
        [168] => 32
        [quantity] => 2
    )

有没有办法用动态键搜索。 请帮忙。

2 个答案:

答案 0 :(得分:5)

假设

$arr1 = Array(
    171 => 34
    170 => Adult
    168 => 32
    'quantity' => 1
);

$arr2 = Array(
    171 => 34
    170 => Adult
    168 => 32
    'quantity' => 1
);

您可以执行以下操作:

$tmp1 = $arr1;
unset($tmp1['quantity']);

$tmp2 = $arr2;
unset($tmp2['quantity']);

if($tmp1 == $tmp2) {
  // do what you like
}

当你执行$tmp1 == $tmp2时,它按键和值比较两个数组,请参阅http://php.net/manual/en/language.operators.array.php

  

$ a == $ b如果$ a和$ b具有相同的键/值对,则为TRUE。

     

$ a === $ b如果$ a和$ b在相同的顺序中具有相同的键/值对,则为TRUE   相同类型的。

答案 1 :(得分:1)

您可以使用array_diff_assoc()功能...它会根据键

检查数组
   <?php
      $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
      $array2 = array("a" => "green", "yellow", "red");
      $result = array_diff_assoc($array1, $array2);
      print_r($result);
    ?>