さまざまなキー セットを使用して、多次元配列内の特定のキーに関連付けられた値を合計することを目的としています。次の入力を考えてみましょう:
Array ( [0] => Array ( [gozhi] => 2 [uzorong] => 1 [ngangla] => 4 [langthel] => 5 ) [1] => Array ( [gozhi] => 5 [uzorong] => 0 [ngangla] => 3 [langthel] => 2 ) [2] => Array ( [gozhi] => 3 [uzorong] => 0 [ngangla] => 1 [langthel] => 3 ) )
望ましい結果は次のとおりです:
Array ( [gozhi] => 10 [uzorong] => 1 [ngangla] => 8 [langthel] => 10 )
これを達成するには、次のアプローチを検討してください:
一般的な解決策については、次を使用します。 array_walk_recursive():
$final = array(); array_walk_recursive($input, function($item, $key) use (&$final){ $final[$key] = isset($final[$key]) ? $item + $final[$key] : $item; });
特定のキー (例: "gozhi") の場合は、array_column() (PHP 5.5 以降で利用可能):
array_sum(array_column($input, 'gozhi'));
すべての内部配列が同じキーを持つ場合:
$final = array_shift($input); foreach ($final as $key => &$value){ $value += array_sum(array_column($input, $key)); } unset($value);
すべての一意のキーを取得し、それぞれを合計します:
$final = array(); foreach($input as $value) $final = array_merge($final, $value); foreach($final as $key => &$value) $value = array_sum(array_column($input, $key)); unset($value);
以上が多次元 PHP 配列の列の値を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。