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

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

May 07, 2023 pm 09:18 PM

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)