• 技术文章 >后端开发 >PHP问题

    php二维数组求和用array_sum吗

    青灯夜游青灯夜游2022-09-21 19:58:31原创132

    php中二维数组求和只用array_sum()是不行的,因为array_sum()函数只处理一维数组;想要使用array_sum()实现二维数组求和,还需要借助foreach语句,语法“$sum=0;foreach($arr as $v){if(is_array($v)){$sum+=array_sum($v);}else{$sum+=$v;}}”。

    php入门到就业线上直播课:进入学习

    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

    php二维数组只用array_sum()是无法求和的。

    原因:array_sum()函数只处理一维数组,对多维数组无效。

    <?php
    header("Content-type:text/html;charset=utf-8");
    $arr = array(1,2,3,array(4,5,6),7,8,array(9,10)); 
    var_dump($arr);
    $sum=array_sum($arr);
    echo "二维数组的和为:".$sum;
    ?>

    0.png

    计算的结果明显不对,它只统计的外层元素的和。

    那么怎么利用array_sum()函数计算二维数组的元素总和?

    解决方法:array_sum()函数+foreach语句

    求和步骤

    步骤1、使用foreach语句循环遍历二维数组的外层数组元素

    foreach($arr as $v){
    //循环体代码
    }

    步骤2、在循环体,使用is_array()函数判断外层元素是否为数组类型,并利用“+=”运算符求和

    if(is_array($v)){
    	$sum+=array_sum($v);
    }else{
    	$sum+=$v;
    }

    实现代码:

    function f($arr){
    	$sum=0;
    	foreach($arr as $v){
    		if(is_array($v)){
    			$sum+=array_sum($v);
    		}else{
    			$sum+=$v;
    		}
    	}
    	echo "二维数组的和为:".$sum."<br>";
    }

    调用上面的函数

    $arr = array(1,2,3,array(4,5,6),7,8,array(9,10)); 
    var_dump($arr);
    f($arr);

    1.png

    $arr = array(array(2,4,6),array(8,10,12)); 
    var_dump($arr);
    f($arr);

    2.png

    推荐学习:《PHP视频教程

    以上就是php二维数组求和用array_sum吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php php数组
    上一篇:php怎么求二维数组有多少个元素 下一篇:php怎么检测数组中是否存在字符串元素
    VIP课程(WEB全栈开发)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• php数组合并保留全部元素可以吗• php数组的元素类型必须一样吗• php数组键名能省略吗• php数组传递是引用传值吗
    1/1

    PHP中文网