php中二維數(shù)組求和只用array_sum()是不行的,因為array_sum()函數(shù)只處理一維數(shù)組;想要使用array_sum()實現(xiàn)二維數(shù)組求和,還需要借助foreach語句,語法“$sum=0;foreach($arr as $v){if(is_array($v)){$sum+=array_sum($v);}else{$sum+=$v;}}”。
php零基礎(chǔ)到就業(yè)直播視頻課:進入學(xué)習(xí)
API 文檔、設(shè)計、調(diào)試、自動化測試一體化協(xié)作工具:點擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
php二維數(shù)組只用array_sum()是無法求和的。
原因:array_sum()函數(shù)只處理一維數(shù)組,對多維數(shù)組無效。
<?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 "二維數(shù)組的和為:".$sum; ?>
計算的結(jié)果明顯不對,它只統(tǒng)計的外層元素的和。
那么怎么利用array_sum()函數(shù)計算二維數(shù)組的元素總和?
解決方法:array_sum()函數(shù)+foreach語句
求和步驟
步驟1、使用foreach語句循環(huán)遍歷二維數(shù)組的外層數(shù)組元素
foreach($arr as $v){ //循環(huán)體代碼 }
-
遍歷給定的 $arr 數(shù)組,在每次循環(huán)中將當(dāng)前外層數(shù)組的值賦給 $v。
步驟2、在循環(huán)體,使用is_array()函數(shù)判斷外層元素是否為數(shù)組類型,并利用“+=”運算符求和
-
如果不是數(shù)組類型,則將不是的外層元素相加求和
-
如果是數(shù)組類型,則使用array_sum()函數(shù)計算該內(nèi)層數(shù)組中所有元素的和,并與外層元素和相加在一起即可。
if(is_array($v)){ $sum+=array_sum($v); }else{ $sum+=$v; }
實現(xiàn)代碼:
function f($arr){ $sum=0; foreach($arr as $v){ if(is_array($v)){ $sum+=array_sum($v); }else{ $sum+=$v; } } echo "二維數(shù)組的和為:".$sum."<br>"; }
調(diào)用上面的函數(shù)
$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);
推薦學(xué)習(xí):《PHP視頻教程》