尝试将一堆数组值一起添加,保持ID值....
我以为我可以使用+=
运算符的基本foreach,但它没有用完。
以下是我的数组:
Array(
[0] => Array(
[246] => Array(
[amount] => 2
)
)
)
Array(
[0] => Array(
[245] => Array(
[amount] => 1
)
)
)
Array(
[0] => Array(
[243] => Array(
[amount] => 2
)
)
)
Array(
[0] => Array(
[245] => Array(
[amount] => 1
)
)
)
Array(
[0] => Array(
[243] => Array(
[amount] => 2
)
)
)
我想要得到的是:
array(
'243' => '4',
'245' => '2',
'246' => '2',
);
这就是我的尝试:
$sumArray = array();
foreach ($orgArray[0] as $k=>$subArray) {
foreach ($subArray as $id=>$value) {
$sumArray[$k]+=$value;
}
}
这是我得到的:
Array
(
[243] => 2
)
答案 0 :(得分:1)
您只需要修改foreach
循环,因为您正在尝试设置$key
,这是数组的索引,对于上面的示例,0,1,2,3...etc
不是 246,245,243...etc
正如您所期望的那样。
这就是你想要的。
$orgArray = [
[246 => ['amount' => 2]],
[245 => ['amount' => 1]],
[243 => ['amount' => 2]],
[245 => ['amount' => 1]],
[243 => ['amount' => 2]],
];
$sumArray = array();
foreach ($orgArray as $k => $subArray) {
foreach ($subArray as $id => $item) {
if (!isset($sumArray[$id])) {
$sumArray[$id] = 0;
}
$sumArray[$id] += $item['amount'];
}
}
注意: 以上[]
数组标识符假设您正在使用允许它的正确php版本,否则您将拥有将它们更改为array()
返回:
Array
(
[246] => 2
[245] => 2
[243] => 4
)
正如所料。