ホームページ  >  記事  >  バックエンド開発  >  PHP は配列 arr sum の値を見つけます

PHP は配列 arr sum の値を見つけます

WBOY
WBOYオリジナル
2023-05-07 16:01:09459ブラウズ

PHP では、配列の処理は非常に一般的な操作です。配列内のすべての要素の合計を求める必要がある場合がありますが、PHP にはこのタスクを実行するためのメソッドが多数用意されています。

1. ループを使用して配列を走査し、合計を計算します

配列の合計を計算する最も簡単な方法の 1 つは、ループを使用して配列を走査し、各要素を合計することです。 。実装コードは次のとおりです。

$sum = 0; // 初始化数组总和为0
$arr = array(1, 2, 3, 4, 5); // 要求和的数组

foreach ($arr as $value) { // 循环遍历数组
    $sum += $value; // 将数组元素加入总和中
}

echo "数组总和为:".$sum; // 输出数组总和

このコードは、foreach を使用して配列内のすべての要素をループし、$sum 変数を使用して配列の合計を計算します。最終結果は次のようになります。

数组总和为:15

このメソッドはシンプルで実装が簡単ですが、配列全体を走査する必要があるため、大規模な配列を扱う場合にパフォーマンスの問題が発生する可能性があります。

2.array_sum() 関数

PHP には、配列内のすべての要素の合計を計算するために使用できる array_sum() という関数が用意されています。は、配列の合計を計算するもう 1 つの簡単な方法です。実装コードは次のとおりです。

$arr = array(1, 2, 3, 4, 5); // 要求和的数组
$sum = array_sum($arr); // 使用array_sum()函数计算数组总和

echo "数组总和为:".$sum; // 输出数组总和

このコードは、合計する配列をパラメータとして array_sum() 関数に渡し、返された合計を $sum に格納します。 ### 変数 。最終結果は前のメソッドと同じになります。

数组总和为:15
このメソッドの実装では、配列全体を走査するためにループを使用する必要がないため、前のメソッドよりもはるかに高速です。

3. array_reduce() 関数を使用する

別の方法は、

array_reduce() 関数を使用することです。この関数は、要素が実行できる高階関数です。指定された操作。実装コードは次のとおりです。

$arr = array(1, 2, 3, 4, 5); // 要求和的数组
$sum = array_reduce($arr, function($carry, $item) { // 使用array_reduce()函数进行求和
    $carry += $item; // 将元素加入到总和中
    return $carry; // 返回更新后的总和
});

echo "数组总和为:".$sum; // 输出数组总和
このコードは、

array_reduce() 関数を使用して配列を合計し、無名関数を使用して計算方法を指定します。まず、$carry パラメータ (つまり、初期値) を 0 に初期化し、匿名関数が呼び出されるたびに、配列内の要素を $item パラメータとして渡します。それを $carry 変数に追加します。この場合、匿名関数は更新された合計を返すだけで済みます。

概要

上記は、配列の合計を計算するためによく使用される 3 つの方法です。その中で最も簡単な方法は、ループを使用して配列をループし、それらの合計を計算することです。他の 2 つの方法は、

array_sum() 関数と array_reduce() 関数を使用する方法です。これらは、このタスクを簡単に実行できる PHP 定義済み関数です。

大きな配列を処理する場合は、

array_sum() 関数と array_reduce() 関数の方が効率的である可能性があります。ただし、小規模および中規模の配列の場合は、配列をループすることでも処理が完了し、コードが読みやすく理解しやすくなります。

以上がPHP は配列 arr sum の値を見つけますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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