ホームページ  >  記事  >  バックエンド開発  >  PHP は 2 次元配列内の列の合計を求めます。

PHP は 2 次元配列内の列の合計を求めます。

PHPz
PHPzオリジナル
2023-05-07 21:18:37771ブラウズ

PHP 開発プロセスでは、配列内のデータに対して合計演算を実行する必要があることがよくあります。 1 次元配列の場合、array_sum 関数を使用して直接合計することができますが、配列が 2 次元配列になると、指定された列の合計を求めるために追加の操作が必要になります。

たとえば、販売データを格納する 2 次元配列があり、各サブ配列は製品 ID、販売数量、単価、その他の情報を含む製品の販売データを表します。すべての商品の総収益、つまり販売量と単価の積を求める必要があります。

それでは、この操作をどのように実装するのでしょうか?

まず、array_column 関数を使用して、指定された列の配列を取得します。この関数は PHP5.5 バージョンの新機能で、構文は次のとおりです: array_column ( array $input ,mixed $column_key [,mixed $index_key = null ] )、$input は抽出される列の配列、$column_key は抽出する配列 列のキー名または数値インデックス $index_key はオプションで、返される配列のキーとして使用されるキー名または列の数値インデックスです。

たとえば、上記の売上データの 2 次元配列では、次のコードを使用してすべての製品の売上配列を取得できます。

$sold_amount = array_column($sales_data, 'sold_amount');

次に、array_reduce 関数を使用できます。 $ sold_amount 配列を変更するには、累積操作を実行して総売上高を取得します。構文は次のとおりです。 array_reduce ( array $array , callable $callback [,mixed $initial = null ] )。ここで、 $array は蓄積される配列、 $callback はカスタム コールバック関数、 $initial は初期値です。

たとえば、次のコードを使用して、すべての製品の売上の合計を見つけることができます:

$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

次に、単価配列に対して同じ操作を実行して、単価を取得する必要があります。すべての商品の単価の合計。最後に、2 つの合計を乗算して、すべてのアイテムの合計収益を取得します。

完全なコードは次のとおりです:

$sales_data = array(
    array('id' => 1, 'sold_amount' => 50, 'unit_price' => 2.5),
    array('id' => 2, 'sold_amount' => 20, 'unit_price' => 3.2),
    array('id' => 3, 'sold_amount' => 100, 'unit_price' => 1.8),
);

$sold_amount = array_column($sales_data, 'sold_amount');
$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

$unit_price = array_column($sales_data, 'unit_price');
$total_unit_price = array_reduce($unit_price, function($carry, $item){
    return $carry + $item;
});

$total_revenue = $total_sold_amount * $total_unit_price;

echo '所有商品的总收入为:' . $total_revenue;

上記のコードを実行すると、出力: すべての製品の合計収入: 630。

要約すると、2 次元配列の特定の列に対して合計演算を実行する必要がある場合、array_column 関数を使用して指定された列の配列を取得し、次に array_reduce 関数を使用できます。配列に対して累積演算を実行して列の合計を取得します。これらの方法により、データをより便利に処理し、開発効率を向上させることができます。

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

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