您现在的位置是:群英 > 开发技术 > PHP语言
php中二维数组求和用的函数有哪些
Admin发表于 2022-12-24 11:46:35783 次浏览
这篇文章分享给大家的内容是关于php中二维数组求和用的函数有哪些,本文介绍得很详细,内容有一定的参考价值,能帮助大家进一步学习和理解“php中二维数组求和用的函数有哪些”,有这方面学习需要的朋友可以看看,接下来就让小编带领大家一起来学习一下吧。

 

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二维数组只用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;
?>
登录后复制

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

那么怎么利用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."<br>";
}
登录后复制

调用上面的函数

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

$arr = array(array(2,4,6),array(8,10,12)); 
var_dump($arr);
f($arr);
登录后复制



通过以上内容的阐述,相信大家对“php中二维数组求和用的函数有哪些”已经有了进一步的了解,更多相关的问题,欢迎关注群英网络或到群英官网咨询客服。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: 二维数组和
相关信息推荐
2022-01-08 17:43:14 
摘要:这篇文章我们来了解PHP中trim函数的相关内容,trim是一种内置函数,可以去除字符串首尾处的空白字符或者其他字符,接下来我们就具体的了解一下trim函数的作用和用法,下文示例有一定的参考价值,有需要的朋友可以了解看看,接下来就跟随小编来一起学习一下吧!
2022-05-18 16:59:32 
摘要:Angular如何对请求进行拦截封装?下面本篇文章给大家介绍一下Angular中实现请求拦截的方法,希望对大家有所帮助!
2022-10-17 18:42:08 
摘要:char数组转string的方法:可以通过直接赋值的方法来实现,如【char a[]=" abc d\0efg ";string s=a;】。如果要实现string转char数组,可以调用strcpy函数和data函数。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部