【问题标题】:Simplifying the array by removing same key values通过删除相同的键值来简化数组
【发布时间】:2014-09-24 05:31:06
【问题描述】:

我有一个这样的数组

数组
(
    [0] => 数组
        (
            [vendor_id] => 2
            [供应商总订单] => 80
        )

    [1] => 数组
        (
            [vendor_id] => 2
            [供应商总订单] => 100
        )

    [2] => 数组
        (
            [vendor_id] => 1
            [供应商总订单] => 150
        )
    [3] => 数组
        (
            [供应商 ID] => 3
            [供应商总订单] => 80
        )

    [4] => 数组
        (
            [供应商 ID] => 5
            [供应商总订单] => 150
        )

    [5] => 数组
        (
            [vendor_id] => 1
            [供应商总订单] => 110
        )

)

我想以这样一种方式简化这个数组,如果'vendor_id'对于两个值是相同的,那么累积/求和的值应该分配给'vendor_total_order'到那个'vendor_id'(基本上我们正在删除的值是具有相同的 vendor_id 和重复的总价值)。

所以当我提供上述数组作为输入时,输出应该如下所示

数组
(
    [0] => 数组
        (
            [vendor_id] => 2
            [供应商总订单] => 180
        )

    [1] => 数组
        (
            [vendor_id] => 1
            [供应商总订单] => 260
        )
    [2] => 数组
        (
            [供应商 ID] => 3
            [供应商总订单] => 80
        )

    [3] => 数组
        (
            [供应商 ID] => 5
            [供应商总订单] => 150
        )

)

我该怎么做?

【问题讨论】:

标签: php arrays multidimensional-array key key-value


【解决方案1】:

您只需要使用 foreach 对它们进行分组。示例:

$total = array();
foreach ($array as $key => $value) {
    if(!isset($total[$value['vendor_id']])) {
        $total[$value['vendor_id']] = array('vendor_id' => $value['vendor_id'], 'vendor_total_order' => 0);
    }
    $total[$value['vendor_id']]['vendor_total_order'] += $value['vendor_total_order'];
}

$total = array_values($total); // simple reindex
echo '<pre>';
print_r($total);

Sample Output

【讨论】:

  • 非常感谢您,Mr.Ghost,它工作得非常棒。
  • @Bashaik 很高兴这有帮助
【解决方案2】:

最好的办法是编写一个执行以下操作的自定义脚本:

  1. 创建一个空的新“结果”数组
  2. 迭代当前数组和每个项目:
  3. 如果结果中不存在该项,则将其插入,否则将 total_value 值更新为其当前值与新项之和。
  4. 保存结果数组

【讨论】:

  • 看起来这应该可以解决我的问题,让我试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-16
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 2019-07-24
相关资源
最近更新 更多