有两种常用的方法可以计算PHP多维数组中所有值的总和,具体分别如下:
方法一:foreach语句遍历数组
// 示例一:使用foreach语句遍历数组
function getSum($arr) {
$sum = 0;
foreach ($arr as $value) {
if (is_array($value)) {
$sum += getSum($value);
} else {
$sum += $value;
}
}
return $sum;
}
// 测试代码
$arr1 = array(1, 2, 3, array(4, 5, 6, array(7, 8, 9)));
echo getSum($arr1); // 输出55
上述代码中,getSum()函数通过遍历数组中的每个值,判断其是否是数组类型,如果是,则递归调用自身,否则累加该元素到总和变量$sum中。这种方法的优点在于遍历过程直观,容易理解,适用于多维数组中有多种数据类型的情况。
方法二:array_walk_recursive()方法递归遍历数组
// 示例二:使用array_walk_recursive()方法递归遍历数组
function getSum2($arr) {
$sum = 0;
array_walk_recursive($arr, function($value) use (&$sum){
$sum += $value;
});
return $sum;
}
// 测试代码
$arr2 = array(1, 2, 3, array(4, 5, 6, array(7, 8, 9)));
echo getSum2($arr2); // 输出55
上述代码中,getSum2()函数使用了PHP自带的array_walk_recursive()方法,可以递归遍历多维数组中的每一个值,并对其执行一个回调函数。回调函数中使用传址方式引用了外部的总和变量$sum,并对每个遍历到的值进行累加,最终得到所有值的总和。这种方法代码简洁,但不如foreach方法直观。
综上,以上两种方式均可实现对PHP多维数组中所有值的总和计算,选择合适的方式应根据实际情况决定。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php计算多维数组中所有值总和的方法 - Python技术站