0

这是我的数组

[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
    )

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

4

2 回答 2

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。

于 2013-11-07T10:35:41.127 回答
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);
    ?>
于 2013-11-07T10:34:49.247 回答