首页 后端开发 PHP问题 php怎么对两个数组的元素进行求和

php怎么对两个数组的元素进行求和

Apr 26, 2023 am 10:21 AM

在 PHP 中,有时我们需要对两个数组的元素进行求和,而且这两个数组可能长度不一样。本文将为大家介绍两种方法来实现这个目标。

方法一:使用 for 循环

这种方法利用 for 循环逐一遍历数组元素,将对应位置上的元素相加并存储到新的数组中,最后返回这个新的数组。代码如下:

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;
}
登录后复制

这里我们分别计算两个数组的长度 $n1$ 和 $n2$,然后取最大值 $n$,以此作为新数组的长度。

接着,在 for 循环中,我们首先定义 $sum$ 置为 0,然后判断当前索引 $i$ 是否小于 $n1$ 或 $n2$,如果是,就将对应位置的元素加到 $sum$ 中。最后将 $sum$ 存储到新数组中,并返回结果。

方法二:使用 array_map() 函数

这种方法使用 PHP 的 array_map() 函数和匿名函数。array_map() 函数将对应两个数组的元素作为参数传递给匿名函数,然后将它们相加并返回一个新的数组。代码如下:

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() 函数计算两个数组的长度 $n1$ 和 $n2$,然后取最大值 $n$。

然后,我们使用 array_pad() 函数将两个数组填充到相同的长度。如果其中一个数组比另一个数组长,我们就用 0 填充它的空白部分。

接着,我们调用 array_map() 函数和匿名函数,以填充后的两个数组作为参数传入。匿名函数将对应两个元素相加并返回结果。最后返回 $result$。

这种方法看起来更简洁一些,并且使用了内置函数,但在处理大型的数组时可能比第一种方法更慢。

总结

本文介绍了两种方法来对 PHP 中的两个数组元素进行求和。方法一使用了 for 循环,而方法二使用了 PHP 的内置函数 array_map()。两种方法各有优劣,可以根据自己的需求选择适合的方法。

以上是php怎么对两个数组的元素进行求和的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24