Stackoverflowには、多次元の連想配列を取得してその中の値を合計する方法に関する多くの優れたQ&Aがあります。残念ながら、キー名が失われていないものは見つかりません。
例えば:
$arr=array(
array('id'=>'1', 'amount'=>'5'),
array('id'=>'1', 'amount'=>'5'),
array('id'=>'2', 'amount'=>'1'),
array('id'=>'2', 'amount'=>'3')
);
結果の配列は次のようになります。
$result=array(
array('id'=>'1', 'amount'=>'10'),
array('id'=>'2', 'amount'=>'4')
);
残念ながら、私が理解できる唯一のことはこれです:
$result = array();
foreach($arr as $amount){
if(!array_key_exists($amount['id'], $arr))
$result[$amount['id']] =0;
$result[$amount['id']] += $amount['amount'];
}
次の場合echo'd
、次のようになります(キーの単語「id」と「amount」がないことに注意してください)。
foreach($result as $id => $amount){
echo $id."==>".$amount."\n";
}
1==>10
2==>4