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()函數只處理一維數組,對多維數組無效。
<?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視頻教程》
站長資訊網