php数组的分组摘要

时间:2014-10-16 20:13:27

标签: php arrays

我在编写php数组的摘要时遇到了问题。我不是专业人士,所有其他帖子都没有给我很多帮助。 我有一个像这样的数组:

Array
(
    [0] => Array
        (
            [position_article_nr] => 100110
            [position_qty] => 50
        )

    [1] => Array
        (
            [position_article_nr] => 100341
            [position_qty] => 1
        )

    [2] => Array
        (
            [position_article_nr] => 100341
            [position_qty] => 1
        )

    [3] => Array
        (
            [position_article_nr] => 100367
            [position_qty] => 1
        )

    [4] => Array
        (
            [position_article_nr] => 100367
            [position_qty] => 1
        )

)

我的结果应该是这样的:

Array
(
    [0] => Array
        (
            [position_article_nr] => 100110
            [position_qty] => 50
        )

    [1] => Array
        (
            [position_article_nr] => 100341
            [position_qty] => 2
        )

    [2] => Array
        (
            [position_article_nr] => 100367
            [position_qty] => 2
        )
)

position_qty是相同position_article_nr的总和。 有任何想法吗?感谢

1 个答案:

答案 0 :(得分:0)

$arr是您的数组,$out是最终数据。在计数时(不需要搜索现有记录),将position_article_nr的值作为关联数组的键处理会更好更​​容易。

$out = array();
foreach($arr as $el)
  if (!isset($out[$el['position_article_nr']]))
     $out[$el['position_article_nr']] = $el;
  else
     $out[$el['position_article_nr']]['position_qty'] += $el['position_qty'];

var_dump($out);

如果您想从$out删除密钥,只需创建$out = array_values($out);