ホームページ >バックエンド開発 >PHPチュートリアル >PHPで動的キーを使用して多次元配列の列の値を合計するにはどうすればよいですか?

PHPで動的キーを使用して多次元配列の列の値を合計するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-16 22:03:111049ブラウズ

How to Sum Column Values in Multi-Dimensional Arrays with Dynamic Keys in PHP?

多次元配列の列値の合計

質問:

どのように計算できますか多次元配列内の列値の合計。連想キーは次のとおりです。動的?

答え:

動的キーを使用して多次元配列内の列の値を合計するには、array_walk_recursive() を利用できます。これは、各内部配列が一意のキーを持つ場合の一般的な解決策を提供します。

$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});

特定のキーの場合は、PHP 5.5 以降で利用可能な array_column() が適切なオプションです。

array_sum(array_column($input, 'gozhi')); // for key 'gozhi'

同じキーを持つ列の合計を取得するには、最初の内部配列をベースとして抽出し、それぞれの値を合計します。 array_column() を使用してキーを取得し、それらをベースに追加します:

$final = array_shift($input);

foreach ($final as $key => &$value){
   $value += array_sum(array_column($input, $key));
}    

unset($value);

array_column() を使用した一般的な解決策については、最初にすべての一意のキーを取得し、次に、それぞれの合計を計算します:

$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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。