php计算多维数组中所有值总和的方法

有两种常用的方法可以计算PHP多维数组中所有值的总和,具体分别如下:

有两种常用的方法可以计算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计算多维数组中所有值总和的方法

基础教程推荐