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