ホームページ > バックエンド開発 > PHPの問題 > PHPで配列内のキーの合計を見つける方法

PHPで配列内のキーの合計を見つける方法

PHPz
リリース: 2023-04-20 14:01:49
オリジナル
1017 人が閲覧しました

PHP 開発者にとって、配列に対してマージ、検索、並べ替えなどのさまざまな操作を実行する必要があることがよくあります。配列内のキーの値を合計する必要がある場合、どうすればよいでしょうか?

PHP では、さまざまな方法を使用して、配列内のキーの合計を見つけることができます。以下では、4 つの異なる合計方法をケースを通して示します:

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

合計する最初の方法は、ループを使用して配列を走査し、各キー値を加算し、最終的に合計結果を取得することです:

<?php
$array = array(1, 2, 3, 4, 5);
$sum = 0;
for ($i = 0; $i < count($array); $i++) {
    $sum += $array[$i];
}
echo "数组求和结果为:".$sum;
?>
ログイン後にコピー

Yesご覧のとおり、for ループを使用して配列全体を走査し、$sum を使用して最終的な合計結果を保存し、毎回配列に要素を追加します。最終的な出力結果は次のとおりです: 配列の合計結果は次のとおりです。 : 15

この方法の欠点は、配列を何度もループする必要があることであり、配列内のデータ量が多い場合、スクリプトのパフォーマンスに影響します。

  1. array_sum() 関数を使用して合計する

PHP には、配列内のすべての要素を簡単に合計できる array_sum() 関数が用意されています。 ##

<?php
$array = array(1, 2, 3, 4, 5);
echo "数组求和结果为:" . array_sum($array);
?>
ログイン後にコピー
配列がパラメータとして array_sum() 関数に渡されると、この関数は配列内のすべての要素を合計して結果を返すことがわかります。最終的な出力結果は次のとおりです:

Array sum 結果は次のようになります: 15

array_sum() 関数を使用して合計演算を直接提供する最初の方法と比較すると、コードはよりシンプルで理解しやすくなりますが、欠点は、配列のキーに対する制限があります。

    合計に array_reduce() 関数を使用する
PHP で合計する別の方法があります。それは、array_reduce() 関数を使用して配列をループし、キーを比較する 値は繰り返し処理され、コードは次のとおりです:

<?php
$array = array(1, 2, 3, 4, 5);
$sum = array_reduce($array, function($carry, $item) {
    $carry += $item;
    return $carry;
});
echo "数组求和结果为:" . $sum;
?>
ログイン後にコピー
このメソッドは、配列と処理関数の 2 つのパラメーターを渡す必要があります。関数内の $carry は最後の計算結果を表します、 $item は現在処理されている要素を表します。

array_reduce() 関数は、受信配列を繰り返し処理し、毎回 1 つの要素を処理関数に渡し、要素を操作して、最終的に処理結果を返します。最終的な出力結果は次のとおりです:

配列合計結果は: 15

この方法の利点は、最初の方法と比較して、クロージャ関数を通じて配列の要素に対して任意の操作を実行できることです。場合によっては、より効率的です。

    再帰を使用して多次元配列のキーの合計を計算する
上記の 3 つの方法は、1 次元配列のキーと値を解決するために使用されます。多次元配列の場合、合計処理を実行する前に配列を再帰的に展開する必要があります。

再帰を使用して多次元配列の合計処理を実装する方法を見てみましょう:

<?php
$array = array(
        1, 
        2, 
        array(
            3, 
            4,
            array(5, 6, 7)
        )
);
function array_sum_recursive($input)
{
    $sum = 0;
    foreach ($input as $item) {
        if (is_array($item)) {
            $sum += array_sum_recursive($item);
        } else if (is_numeric($item)) {
            $sum += $item;
        }
    }
    return $sum;
}
echo "多维数组求和结果为:".array_sum_recursive($array);
?>
ログイン後にコピー
上記の関数 array_sum_recursive() を通じて、多次元配列の各要素を走査できます。各部分配列が再帰的に合計され、最終的に多次元配列の合計結果が返されます。出力結果は次のとおりです:

多次元配列の合計結果は次のとおりです: 28

多次元配列の合計を実装する再帰的方法はより面倒ですが、非常に柔軟であり、複数レベルのネストを処理できるため、配列に非常に便利です。

実際のプロジェクト開発では、さまざまなニーズに応じて上記のさまざまな方法を選択して配列キーの合計を計算し、パフォーマンスと可読性に応じてバランスを取ることができます。

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

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