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

多次元 PHP 配列の列の値を合計するにはどうすればよいですか?

DDD
リリース: 2024-12-27 09:40:12
オリジナル
487 人が閲覧しました

How to Sum Columnar Values in Multi-Dimensional PHP Arrays?

多次元配列への列指値の追加

さまざまなキー セットを使用して、多次元配列内の特定のキーに関連付けられた値を合計することを目的としています。次の入力を考えてみましょう:

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()

一般的な解決策については、次を使用します。 array_walk_recursive():

$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});
ログイン後にコピー

array_column()

特定のキー (例: "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);
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート