Home >Backend Development >PHP Problem >How to sum the elements of two arrays in php

How to sum the elements of two arrays in php

PHPz
PHPzOriginal
2023-04-26 10:21:55769browse

In PHP, sometimes we need to sum the elements of two arrays, and the two arrays may have different lengths. This article will introduce you to two methods to achieve this goal.

Method 1: Use for loop

This method uses for loop to traverse the array elements one by one, add the elements at the corresponding positions and store them in a new array, and finally return this new array. The code is as follows:

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;
}

Here we calculate the lengths of the two arrays $n1$ and $n2$ respectively, and then take the maximum value $n$ as the length of the new array.

Next, in the for loop, we first define $sum$ to be 0, and then determine whether the current index $i$ is less than $n1$ or $n2$. If so, add the element at the corresponding position. into $sum$. Finally store $sum$ into a new array and return the result.

Method 2: Use array_map() function

This method uses PHP’s array_map() function and anonymous function. The array_map() function passes elements corresponding to two arrays as arguments to an anonymous function, then adds them and returns a new array. The code is as follows:

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;
}

First, we use the count() function to calculate the lengths $n1$ and $n2$ of the two arrays, and then take the maximum value $n$.

Then, we use the array_pad() function to pad both arrays to the same length. If one of the arrays is longer than the other, we fill its empty space with 0s.

Next, we call the array_map() function and the anonymous function, passing in the two filled arrays as parameters. The anonymous function adds two corresponding elements and returns the result. Finally return $result$.

This method looks more concise and uses built-in functions, but it may be slower than the first method when processing large arrays.

Summary

This article introduces two methods to sum two array elements in PHP. Method one uses a for loop, while method two uses PHP’s built-in function array_map(). Both methods have their own advantages and disadvantages, and you can choose the appropriate method according to your own needs.

The above is the detailed content of How to sum the elements of two arrays in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn