php多维数组统计重复值并添加对应值

可怜的

我有一个 php 数组

Array
(
    [0] => Array
        (
            [location] => Kansas
            [kit] => Moving Kit
            [quantity] => 1
        )

[1] => Array
    (
        [location] => Louisiana
        [kit] => Anchored4Life DVD Kit
        [quantity] => 1
    )

[2] => Array
    (
        [location] => Louisiana
        [kit] => Anchored4Life DVD Kit
        [quantity] => 1
    )

[3] => Array
    (
        [location] => Louisiana
        [kit] => Anchored4Life DVD Kit
        [quantity] => 1
    )

[4] => Array
    (
        [location] => Pennsylvania
        [kit] => Anchored4Life DVD Kit
        [quantity] => 5
    )

[5] => Array
    (
        [location] => Pennsylvania
        [kit] => Welcome Kit
        [quantity] => 1
    )

)

我想对它进行排序,以便我根据位置和套件以及它们的数量和数量(如果套件更薄)接收数据。

ONLouisiana Anchored4Life DVD Kit是重复的,所以我想知道每个州有多少套件订单,例如Louisiana Anchored4Life DVD Kit数量 3。

我已经尝试过,array_count_values()但这仅根据字符串进行计数,我需要它用于多个套件,并且套件未预定义。

安德烈亚斯

我打算暂停发布,但后来我看到了其他答案。

您说在位置上分组,所以我认为这就是您需要的:
我在关联数组中对位置进行分组,然后对不同的套件进行分组,如果套件已添加,则对数量求和。

foreach($arr as $sub){
    if(!isset($res[$sub['location']])){
        $res[$sub['location']][$sub['kit']] = $sub;
    }elseif(!isset($res[$sub['location']][$sub['kit']])){
        $res[$sub['location']][$sub['kit']] = $sub;
    }else{
        $res[$sub['location']][$sub['kit']]['quantity'] += $sub['quantity'];
    }
}

var_dump($res);

这将返回:

array(3) {
  ["Kansas"]=>
  array(1) {
    ["Moving Kit"]=>
    array(3) {
      ["location"]=>
      string(6) "Kansas"
      ["kit"]=>
      string(10) "Moving Kit"
      ["quantity"]=>
      string(1) "1"
    }
  }
  ["Louisiana"]=>
  array(1) {
    ["Anchored4Life DVD Kit"]=>
    array(3) {
      ["location"]=>
      string(9) "Louisiana"
      ["kit"]=>
      string(21) "Anchored4Life DVD Kit"
      ["quantity"]=>
      int(3)
    }
  }
  ["Pennsylvania"]=>
  array(2) {
    ["Anchored4Life DVD Kit"]=>
    array(3) {
      ["location"]=>
      string(12) "Pennsylvania"
      ["kit"]=>
      string(21) "Anchored4Life DVD Kit"
      ["quantity"]=>
      string(1) "5"
    }
    ["Welcome Kit"]=>
    array(3) {
      ["location"]=>
      string(12) "Pennsylvania"
      ["kit"]=>
      string(11) "Welcome Kit"
      ["quantity"]=>
      string(1) "1"
    }
  }
}

https://3v4l.org/DgPKp

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP搜索多维数组以获取重复值

来自分类Dev

PHP多维数组中的多个重复值

来自分类Dev

PHP在多维数组PHP中合并重复的数组值

来自分类Dev

从PHP中的多维数组中删除重复的值

来自分类Dev

PHP多维数组,重复值的平均值

来自分类Dev

PHP-从多维数组中删除重复的值

来自分类Dev

从php中的多维数组中仅提取重复值

来自分类Dev

从PHP中的多维数组中删除重复的值

来自分类Dev

PHP-从多维数组中删除重复的值

来自分类Dev

添加多维数组的值

来自分类Dev

如何在PHP中添加多维数组的值?

来自分类Dev

在php中将值添加到多维关联数组

来自分类Dev

将字段 - 值添加到 php 中的多维数组

来自分类Dev

从多维数组php检索值

来自分类Dev

PHP多维数组丢失的值

来自分类Dev

PHP多维数组值替换

来自分类Dev

PHP更改多维数组的值

来自分类Dev

从多维数组php检索值

来自分类Dev

PHP多维数组值替换

来自分类Dev

PHP count 多维数组值

来自分类Dev

PHP数组重复值

来自分类Dev

多维数组值的重复数据删除

来自分类Dev

如何反转多维数组中的重复值

来自分类Dev

在多维数组中查找重复值

来自分类Dev

如何摆脱多维数组中的重复值

来自分类Dev

如何检查多维数组的重复值

来自分类Dev

从多维数组中删除重复的值并求和

来自分类Dev

从多维数组中删除重复的值

来自分类Dev

计算多维数组中的重复值