我同意其他人关于显示您迄今为止尝试过的代码的观点。话虽如此,这应该有效:
$array = array (
array (
'co' => '1',
'lo' => 'aaa',
),
array (
'co' => '1',
'lo' => 'bbb',
),
array (
'co' => '1',
'lo' => 'ccc',
),
array (
'co' => '1',
'lo' => 'aaa',
),
array (
'co' => '1',
'lo' => 'bbb',
)
);
$new_array = array();
foreach($array as $a){
if(!array_key_exists($a['lo'], $new_array)){
$new_array[$a['lo']] = intval($a['co']);
}else{
$new_array[$a['lo']] = $new_array[$a['lo']] + intval($a['co']);
}
}
print_r($new_array);
'co'
我们在数组中循环,如果不存在则创建一个新的数组键,如果它已经存在,则使用指定的数字添加到数组键值中。在尝试将它们解析/添加到新数组之前,您可能需要一些额外的检查以确保它们作为数组键存在于原始数组'co'
中。'lo'
作为旁注,无需将原始数组的键指定为数字,因为数组是自动索引的。请注意,我在声明数组时删除了这些数字。