PHP程序员小白到大牛集训(12期免息)
首页 >后端开发 >PHP问题 > 正文

php二维数组求和用array_sum吗

原创2022-09-21 19:58:311096 + php学习QQ群(点击入群)

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入门到就业线上直播课:进入学习
API 文档、设计、调试、自动化测试一体化协作工具:点击使用

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

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

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

登录后复制

0.png

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

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

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

求和步骤

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

foreach($arr as $v){
//循环体代码
}
登录后复制
  • 遍历给定的 $arr 数组,在每次循环中将当前外层数组的值赋给 $v。

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

  • 如果不是数组类型,则将不是的外层元素相加求和

  • 如果是数组类型,则使用array_sum()函数计算该内层数组中所有元素的和,并与外层元素和相加在一起即可。

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

调用上面的函数

$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数组
  • 程序员必备接口测试调试工具:点击使用

    Apipost = Postman + Swagger + Mock + Jmeter

    Api设计、调试、文档、自动化测试工具

    后端、前端、测试,同时在线协作,内容实时同步

    支持grpc,http,websocket,socketio,socketjs类型接口调试

    相关文章

    相关视频


    视频教程分类

    专题推荐

    官方公众号

    php中文网课程

    扫码关注官方公众号
    回复“phpcn01”领取php学习资料课程
    全套工具、电子书、脑图、内部课程等

    推荐视频教程

    开通VIP会员课 0元学

    热门推荐