分组汇总的一个php数组
我有问题要对php数组进行总结。我不是专业人士,所有其他职位都没有帮助我很多。 我有一个这样的阵列:分组汇总的一个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的总和。 有什么想法?谢谢
$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);
非常感谢!完美的作品!我有些麻烦要理解,但我会研究并继续学习它! – Marco 2014-10-16 20:33:58
@Marco如果有疑问,请提问。它使用'100367'等作为关联数组的关键字。这样就可以更容易地检查或解决以前存储的值。 – Cheery 2014-10-16 20:43:43
我明白关键和代码的逻辑:关键字为'xxxxxx'的现有数组的证明,如果没有设置,则将其添加到position_qty的数量。但$ out [$ el ['position_article_nr']] = $ el的风格对我来说有点令人困惑:/但我很快就会明白它的希望 – Marco 2014-10-16 21:09:49
惹一['foreach'环路(http://php.net/manual/en/control-structures.foreach。 PHP),并让我们知道如果你需要任何进一步的帮助:) – Sam 2014-10-16 20:15:33
或者,如果这是一个数据库结果,也许'sum'和'group by'? – AbraCadaver 2014-10-16 20:29:33