3 回答

TA貢獻1856條經驗 獲得超5個贊
使用isset將避免未定義的偏移錯誤:
$new_data = [];
foreach($data as $k => $v){
if (!isset($new_data[$v['code']]['ttl'])){
$new_data[$v['code']]['ttl'] = 0;
}
$new_data[$v['code']]['ttl'] += $v['count'];
}
print_r($new_data);

TA貢獻1848條經驗 獲得超2個贊
假設您希望 to 中的鍵$new_data是唯一的代碼,并且值是一個數組,ttl其鍵的值是該特定代碼的計數總和:
$new_data = [];
foreach($data as $v){
if (!array_key_exists($v['code'], $new_data)) {
$new_data[$v['code']]['ttl'] = $v['count'];
} else {
$new_data[$v['code']]['ttl'] += $v['count'];
}
}

TA貢獻1777條經驗 獲得超10個贊
我認為這就是您想要的輸出:
Array
(
[2] => Array
(
[ttl] => 8
)
[3] => Array
(
[ttl] => 9
)
[11] => Array
(
[ttl] => 6
)
[17] => Array
(
[ttl] => 14
)
)
如果是這樣,您可以對代碼進行少量修改,如下所示:
$new_data = [];
foreach ($data as $d) {
if (isset($new_data[$d['code']]['ttl'])) {
$new_data[$d['code']]['ttl'] += $d['count'];
} else {
$new_data[$d['code']]['ttl'] = $d['count'];
}
}
- 3 回答
- 0 關注
- 137 瀏覽
添加回答
舉報