我有一个问题,我有这个数组:
Array
(
[0] => Array
(
[date] => 2015-07-07
[nb] => 12
)
[1] => Array
(
[date] => 2015-07-10
[nb] => 6
)
[2] => Array
(
[date] => 2015-07-07
[nb] => 8
)
[3] => Array
(
[date] => 2015-07-09
[nb] => 48
)
[4] => Array
(
[date] => 2015-07-09
[nb] => 42
)
}
Run Code Online (Sandbox Code Playgroud)
但我想得到这个:
Array
(
[0] => Array
(
[date] => 2015-07-07
[nb] => 20
)
[1] => Array
(
[date] => 2015-07-09
[nb] => 90
)
[2] => Array
(
[date] => 2015-07-10
[nb] => 6
)
}
Run Code Online (Sandbox Code Playgroud)
这个想法是,如果在数组中存在多个日期[nb]必须加起来.
我试过这样的:
foreach($aTotalRows as $k=>$row){
if($row[$k]['date'] == $row[$k+1]['date']){
$row[$k]['nb'] = $row[$k]['nb'] + $row[$k+1]['nb']
}
}
Run Code Online (Sandbox Code Playgroud)
但是不能解决这个问题,你能帮帮我吗?Thx提前
不,这只有在你按日期排序时才有效....尝试构建类似的东西:
$aggregateArray = array();
foreach($aTotalRows as $row) {
if(!array_key_exists($row['date'], $aggregateArray) {
$aggregateArray[$row['date']] = 0;
}
$aggregateArray[$row['date']] += $row['nb']
}
Run Code Online (Sandbox Code Playgroud)
这将给你类似的东西:
Array(
['2015-07-07'] => 20
['2015-07-10'] => 90
['2015-07-11'] => 6
)
Run Code Online (Sandbox Code Playgroud)
然后你可以在必要时对其进行重组