首頁  >  文章  >  後端開發  >  php二維數組求和用array_sum嗎

php二維數組求和用array_sum嗎

青灯夜游
青灯夜游原創
2022-09-21 19:58:312235瀏覽

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嗎

本教學操作環境: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;
?>

php二維數組求和用array_sum嗎

計算的結果明顯不對,它只統計的外層元素的和。

php二維數組求和用array_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二維數組求和用array_sum嗎

php二維數組求和用array_sum嗎推薦學習:《

PHP影片教學

以上是php二維數組求和用array_sum嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn