PHP 開発者にとって、配列に対してマージ、検索、並べ替えなどのさまざまな操作を実行する必要があることがよくあります。配列内のキーの値を合計する必要がある場合、どうすればよいでしょうか?
PHP では、さまざまな方法を使用して、配列内のキーの合計を見つけることができます。以下では、4 つの異なる合計方法をケースを通して示します:
合計する最初の方法は、ループを使用して配列を走査し、各キー値を加算し、最終的に合計結果を取得することです:
<?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
この方法の欠点は、配列を何度もループする必要があることであり、配列内のデータ量が多い場合、スクリプトのパフォーマンスに影響します。
PHP には、配列内のすべての要素を簡単に合計できる array_sum() 関数が用意されています。 ##
<?php $array = array(1, 2, 3, 4, 5); echo "数组求和结果为:" . array_sum($array); ?>配列がパラメータとして array_sum() 関数に渡されると、この関数は配列内のすべての要素を合計して結果を返すことがわかります。最終的な出力結果は次のとおりです:
Array sum 結果は次のようになります: 15
<?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
<?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 サイトの他の関連記事を参照してください。