ホームページ > バックエンド開発 > PHPチュートリアル > PHP で配列データを列ごとにグループ化して合計し、連想配列を作成する方法

PHP で配列データを列ごとにグループ化して合計し、連想配列を作成する方法

DDD
リリース: 2024-12-16 12:15:17
オリジナル
454 人が閲覧しました

How to Group and Sum Array Data by Column in PHP to Create an Associative Array?

配列データを列ごとにグループ化し、連想配列の別の列を合計します

次のようなデータの配列が指定された場合:

$array = [
    ['name' => 'Bank BRI', 'amount' => 0],
    ['name' => 'Bank BRI', 'amount' => 0],
    ['name' => 'Bank BCA', 'amount' => 1412341234],
    ['name' => 'Bank CIMB Niaga', 'amount' => 532532552],
    ['name' => 'Bank BRI', 'amount' => 34534534],
    ['name' => 'Bank CIMB Niaga', 'amount' => 453425243],
    ['name' => 'Bank BRI', 'amount' => 0],
    ['name' => 'Bank BNI', 'amount' => 124124],
    ['name' => 'Bank CIMB Niaga', 'amount' => 352345623],
    ['name' => 'Bank BCA', 'amount' => 23432423],
    ['name' => 'Bank Mandiri', 'amount' => 0],
    ['name' => 'Bank BCA', 'amount' => 0],
    ['name' => 'Bank BCA', 'amount' => 0],
    ['name' => 'Bank Permata', 'amount' => 352352353],
];
ログイン後にコピー

目標は、「名前」列に基づいてデータをグループ化し、合計することです。各グループ内の「量」値を使用して、フラットな連想配列を形成します。期待される出力は次のとおりです:

array (
  'Bank BRI' => 34534534,
  'Bank BCA' => 1435773657,
  'Bank CIMB Niaga' => 1338303418,
  'Bank BNI' => 124124,
  'Bank Mandiri' => 0,
  'Bank Permata' => 352352353,
)
ログイン後にコピー
ログイン後にコピー

解決策:

$bankTotals = array();
foreach ($array as $amount) {
  $bankTotals[$amount['name']] += $amount['amount'];
}
ログイン後にコピー

このコードは、$bankTotals という空の配列を初期化します。次に、入力配列を反復処理して、データ行を表す各サブ配列にアクセスします。各行について、$bankTotals 配列内の対応する 'name' キーに 'amount' 値を追加します。このプロセスは、行を「名前」で効果的にグループ化し、それに応じて「金額」値を合計します。

出力:

array (
  'Bank BRI' => 34534534,
  'Bank BCA' => 1435773657,
  'Bank CIMB Niaga' => 1338303418,
  'Bank BNI' => 124124,
  'Bank Mandiri' => 0,
  'Bank Permata' => 352352353,
)
ログイン後にコピー
ログイン後にコピー

以上がPHP で配列データを列ごとにグループ化して合計し、連想配列を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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