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

PHPで2つの配列の要素を合計する方法

PHPz
リリース: 2023-04-26 11:17:30
オリジナル
754 人が閲覧しました

PHP では、2 つの配列の要素を合計する必要がある場合があり、2 つの配列の長さが異なる場合があります。この記事では、この目標を達成するための 2 つの方法を紹介します。

方法 1: for ループを使用する

このメソッドは、for ループを使用して配列要素を 1 つずつ走査し、対応する位置に要素を追加して新しい配列に格納し、最後に戻り値を返します。この新しい配列。コードは次のとおりです。

function sumArrays($arr1, $arr2) {
    $n1 = count($arr1);
    $n2 = count($arr2);

    $n = max($n1, $n2);
    $result = array();

    for ($i = 0; $i < $n; $i++) {
        $sum = 0;
        if ($i < $n1) {
            $sum += $arr1[$i];
        } 
        if ($i < $n2) {
            $sum += $arr2[$i];
        }
        array_push($result, $sum);
    }
    return $result;
}
ログイン後にコピー

ここでは、2 つの配列 $n1$ と $n2$ の長さをそれぞれ計算し、最大値 $n$ を新しい配列の長さとします。

次に、for ループで、最初に $sum$ を 0 に定義し、次に現在のインデックス $i$ が $n1$ または $n2$ より小さいかどうかを判断します。そうであれば、要素を追加します。対応する位置の $sum$ に。最後に $sum$ を新しい配列に格納し、結果を返します。

方法 2: array_map() 関数を使用する

この方法では、PHP の array_map() 関数と匿名関数を使用します。 array_map() 関数は、2 つの配列に対応する要素を引数として無名関数に渡し、それらを追加して新しい配列を返します。コードは次のとおりです。

function sumArrays($arr1, $arr2) {
    $n1 = count($arr1);
    $n2 = count($arr2);

    $n = max($n1, $n2);
    $result = array_map(function($a, $b) {
        return $a + $b;
    }, array_pad($arr1, $n, 0), array_pad($arr2, $n, 0));
    
    return $result;
}
ログイン後にコピー

まず、count() 関数を使用して 2 つの配列の長さ $n1$ と $n2$ を計算し、最大値 $n$ を取得します。

次に、array_pad() 関数を使用して、両方の配列を同じ長さに埋め込みます。配列の一方が他方より長い場合は、その空のスペースを 0 で埋めます。

次に、array_map() 関数と匿名関数を呼び出し、2 つの値が入った配列をパラメーターとして渡します。無名関数は、対応する 2 つの要素を追加し、結果を返します。最後に $result$ を返します。

この方法はより簡潔に見え、組み込み関数を使用していますが、大きな配列を処理する場合は最初の方法よりも遅くなる可能性があります。

概要

この記事では、PHP で 2 つの配列要素を合計する 2 つの方法を紹介します。方法 1 では for ループを使用し、方法 2 では PHP の組み込み関数 array_map() を使用します。どちらの方法にもそれぞれ長所と短所があり、必要に応じて適切な方法を選択できます。

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

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