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

PHPで配列データを列ごとにグループ化して合計する方法?

DDD
DDDオリジナル
2024-12-06 13:52:12982ブラウズ

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

ある列の配列データをグループ化し、別の列のデータを合計してフラット連想配列を形成する

問題:

キーと値のペアを含む配列を指定すると、特定の列の値に基づいてデータをグループ化し、別の列のデータを合計します。たとえば、次の配列がある場合:

$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],
];

解決策:

「name」列に基づいてデータをグループ化し、 「金額」列については、次の手順に従います。

  1. $bankTotals という空の配列を初期化します。この配列には、グループ化されたデータが保存されます。
  2. foreach ループを使用して入力配列を繰り返します。
  3. 配列内の各要素について、bankTotals 配列に名前に一致するキーが既に含まれているかどうかを確認します。 ' 現在の要素の値。
  4. bankTotals 配列に現在の 'name' 値に一致するキーが含まれていない場合は、その値で新しいキーを作成し、その値を設定します。
  5. 現在の要素の金額値を、bankTotals 配列の対応するキーに追加します。

入力配列全体を反復した後、$bankTotals 配列には次の値が含まれます。銀行名をキーとして、合計金額を値として持つグループ化されたデータ。

目的を達成するためのコードは次のとおりです。出力:

$bankTotals = array();
foreach($array as $amount)
{
  $bankTotals[$amount['name']] += $amount['amount'];
}

print_r($bankTotals);

出力:

Array
(
    [Bank BRI] => 34534534
    [Bank BCA] => 1435773657
    [Bank CIMB Niaga] => 1338303418
    [Bank BNI] => 124124
    [Bank Mandiri] => 0
    [Bank Permata] => 352352353
)

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

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