【发布时间】:2019-05-13 12:13:43
【问题描述】:
我想根据键的一部分在关联数组中累积值。
我已经测试了这个在索引数组中工作正常的 foreach 循环:
$b = array();
foreach ($a as $key => $value) {
if ($key > 0) {
$b[$key] = $b[$key - 1] + $value;
}
}
我无法让它在关联数组中工作,但是...
$a(摘录)
Array (
[2014-04-22|Paul] => 0
[2014-04-28|Paul] => 2
[2014-05-13|Paul] => 0
[2014-06-03|Paul] => 1
[2014-06-12|Paul] => 0
[2014-08-11|Paul] => 1
[2014-08-28|Paul] => 3
[2012-05-09|John] => 1
[2012-08-29|John] => 2
[2012-09-05|John] => 0
[2012-09-13|John] => 1
)
$b(想要的结果)
Array (
[2014-04-22|Paul] => 0
[2014-04-28|Paul] => 2
[2014-05-13|Paul] => 2
[2014-06-03|Paul] => 3
[2014-06-12|Paul] => 3
[2014-08-11|Paul] => 4
[2014-08-28|Paul] => 7
[2012-05-09|John] => 1
[2012-08-29|John] => 3
[2012-09-05|John] => 3
[2012-09-13|John] => 4
)
在期望的结果中,每个值都是 'Paul' 和 'John'(以及更多)累积到前一个值。
【问题讨论】:
-
这是因为数组由很多人组成,先按人排序,再按日期排序。
-
请注意,如果您创建累积值数组,则不需要对名称进行排序
标签: php arrays accumulate