ホームページ > バックエンド開発 > PHPの問題 > PHP多次元配列グループの合計

PHP多次元配列グループの合計

PHPz
リリース: 2023-05-07 11:52:10
オリジナル
745 人が閲覧しました

Web アプリケーションの継続的な開発に伴い、データの処理と分析の重要性がますます高まっています。多次元配列の使用は、Web 開発では一般的な状況です。 PHP の多次元配列の場合、グループの合計は頻繁に必要な操作です。この記事では、PHPにおける多次元配列のグループ合計の実装方法を中心に説明します。

まず、以下に示すように、製品名、販売日、および販売数量を含む多次元配列があると仮定して、例を見てみましょう:

$sales = array(
      array("product" => "A", "date" => "2022-01-01", "sales" => 100),
      array("product" => "B", "date" => "2022-01-02", "sales" => 200),
    array("product" => "C", "date" => "2022-01-03", "sales" => 250),
    array("product" => "B", "date" => "2022-01-04", "sales" => 150),
    array("product" => "A", "date" => "2022-01-05", "sales" => 300),
    array("product" => "C", "date" => "2022-01-06", "sales" => 400),
);
ログイン後にコピー

We want to 売上の合計は次のようになります。次のコードによって実現されます:

<?php

$sum = array();  // 定义存放结果的数组

foreach ($sales as $sale) {
    $product = $sale["product"];  // 获取产品名称
    $salesAmt = $sale["sales"];  // 获取销售额
   
    // 如果该产品名称不存在,则创建一个以该产品名称为键的数组元素
    if (!array_key_exists($product, $sum)) {
        $sum[$product] = 0;
    }
    
    // 将销售额加入该产品名称对应的数组元素中
    $sum[$product] += $salesAmt;
}

print_r($sum);  // 输出结果

?>
ログイン後にコピー

上記のコードの出力は次のとおりです:

Array
(
    [A] => 400
    [B] => 350
    [C] => 650
)
ログイン後にコピー

コードの実装の考え方は、foreach ループを使用してマルチ内の各配列を走査することです。 -次元配列要素、この要素の製品名と販売数量を取得します。そして、結果を格納した配列に商品名が既に存在するかどうかを判断し、存在しない場合には商品名をキーとした配列要素を作成します。最後に、商品名に対応する配列要素に売上数量を追加します。走査が完了すると、各製品名に対応する総販売数量が取得できます。

複数の条件に基づいてグループ化して合計することもできます。たとえば、上記の例で、製品名と販売日でグループ化して合計したい場合は、次のコードで実現できます:

<?php

$sum = array();  // 定义存放结果的数组

foreach ($sales as $sale) {
    $product = $sale["product"];  // 获取产品名称
    $date = $sale["date"];  // 获取销售日期
    $salesAmt = $sale["sales"];  // 获取销售额
   
    // 如果该产品名称不存在,则创建一个以该产品名称为键的数组元素
    if (!array_key_exists($product, $sum)) {
        $sum[$product] = array();
    }
    
    // 如果该销售日期不存在,则创建一个以该销售日期为键的数组元素
    if (!array_key_exists($date, $sum[$product])) {
        $sum[$product][$date] = 0;
    }
    
    // 将销售额加入该产品名称和销售日期对应的数组元素中
    $sum[$product][$date] += $salesAmt;
}

print_r($sum);  // 输出结果

?>
ログイン後にコピー

上記のコードの出力は次のとおりです:

Array
(
    [A] => Array
        (
            [2022-01-01] => 100
            [2022-01-05] => 300
        )

    [B] => Array
        (
            [2022-01-02] => 200
            [2022-01-04] => 150
        )

    [C] => Array
        (
            [2022-01-03] => 250
            [2022-01-06] => 400
        )

)
ログイン後にコピー

コードの実装内容 このアイデアは前の例と似ていますが、結果を格納する配列で、各配列要素が販売日をキーとして持つ配列を作成する点が異なります。このように、商品名や発売日ごとに簡単にグループ化して集計することができます。

要約すると、PHP における多次元配列のグループ合計は一般的な操作です。実装する場合、foreach ループを使用して配列内の各配列要素を走査し、必要に応じて新しい配列要素を作成し、グループ合計関数を実現できます。もちろん、データ量が多い場合には、PHP の array_reduce() 関数などの高度な関数を使用して、対応する操作を完了し、コードの実行効率と実行速度を向上させることもできます。

以上がPHP多次元配列グループの合計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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