ホームページ > バックエンド開発 > PHPの問題 > PHPで配列内の各要素を合計する方法

PHPで配列内の各要素を合計する方法

PHPz
リリース: 2023-04-26 10:03:09
オリジナル
570 人が閲覧しました

PHP は、特に Web アプリケーション開発の分野で広く使用されているプログラミング言語です。 PHP では、2 次元配列はよく使用されるデータ型の 1 つです。 2 次元配列を扱う場合、配列内の各要素を合計する必要がある場合があります。この記事では、配列を使用してこの目標を達成する方法を紹介します。

まず第一に、2 次元配列の構造を理解する必要があります。 PHP では、2 次元配列はメイン配列と複数のサブ配列で構成されます。各部分配列は複数の要素 (つまり、値) で構成されます。次の方法で単純な 2 次元配列を定義できます。

$arr = array(
    array(2, 5, 8),
    array(3, 6, 9),
    array(4, 7, 10)
);
ログイン後にコピー

この配列は 3 つのサブ配列で構成され、各サブ配列には 3 つの要素が含まれます。次に、この配列内のすべての要素を追加して合計を取得する必要があります。まず、for ループを使用して配列を反復処理し、各要素を追加します。

$total = 0;        // 定义一个变量用于存储总和
for($i=0; $i<count($arr); $i++) {
    for($j=0; $j<count($arr[$i]); $j++) {
        $total += $arr[$i][$j];
    }
}
echo "总和为:" . $total;
ログイン後にコピー

この例では、2 レベルのネストされた for ループを使用して、各サブ配列とその要素を反復処理します。ループでは、変数 $total を使用して、すべての要素の合計を保存します。最後に、結果を画面に出力します。

for ループの使用に加えて、foreach ループを使用して配列を走査することもできます。この方法はより直感的でシンプルで、比較的大きな 2 次元配列の処理に適しています。 2 つの foreach ループを使用して、メイン配列とサブ配列の要素を反復処理できます。

$total = 0;        // 定义一个变量用于存储总和
foreach($arr as $sub_arr) {
    foreach($sub_arr as $value) {
        $total += $value;
    }
}
echo "总和为:" . $total;
ログイン後にコピー

この例では、2 つの foreach ループを使用して、メイン配列とサブ配列の要素を反復処理します。もう一度、変数 $total を使用してすべての要素の合計を保存し、結果を画面に出力します。

上記の 2 つの方法に加えて、PHP 組み込み関数 array_reduce を使用してこの目標を達成することもできます。この関数の機能は、配列内のすべての要素を蓄積し、最終結果を返すことです。 array_reduce 関数と無名関数を使用して、2 次元配列要素の合計を実装できます。

$total = array_reduce($arr, function($carry, $item) {
    $carry += array_sum($item);
    return $carry;
}, 0);
echo "总和为:" . $total;
ログイン後にコピー

この例では、最初のパラメータとして 2 次元配列を array_reduce 関数に渡します。 2 番目のパラメーターは、配列内の各要素を操作する匿名関数 (または既存の関数) です。関数内では、組み込み関数 array_sum を使用して、部分配列内の要素を合計します。最後に、すべての要素の合計を格納するために使用される変数 $carry の値を返します。 3 番目のパラメータは結果の初期値です。

要約すると、PHP では、for ループ、foreach ループ、および array_reduce 関数を使用して、2 次元配列内の要素の合計を実装できます。方法が異なれば、状況に応じて適用性、利点、欠点も異なります。これらのメソッドを使用して理解することで、2 次元配列をより適切に処理し、より複雑な演算を実装できるようになります。

以上がPHPで配列内の各要素を合計する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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