如何在PHP中计算二维数组的列平均值?
计算PHP二维数组每一列的平均值
首先,你的二维数组代码如下:
$numers = array ( array(198,208,109,11,636), array(198,188,84,55,756), array(194,206,113,13,531), array(184,213,127,18,101), array(194,213,127,23,110), array(984,213,127,44,125), array(184,213,127,88,980), array(995,211,129,63,888) );
方法一:手动循环遍历(适合理解底层逻辑)
先初始化数组存储每列总和,遍历二维数组的每一行,将元素对应累加到列总和中,最后用总和除以行数得到平均值:
// 获取数组行数 $rowCount = count($numers); // 初始化列总和数组,按第一行的列数填充初始值0 $columnSums = array_fill(0, count($numers[0]), 0); foreach ($numers as $row) { foreach ($row as $colIndex => $value) { $columnSums[$colIndex] += $value; } } // 计算每列平均值 $columnAverages = []; foreach ($columnSums as $sum) { $columnAverages[] = $sum / $rowCount; } // 输出结果 print_r($columnAverages);
方法二:利用PHP内置函数(简洁高效)
用array_column()提取每一列的所有元素,array_sum()求和后除以行数得到平均值:
$rowCount = count($numers); $columnAverages = []; // 遍历每一列索引 for ($col = 0; $col < count($numers[0]); $col++) { // 获取当前列的全部元素 $column = array_column($numers, $col); // 计算并存储平均值 $columnAverages[$col] = array_sum($column) / $rowCount; } // 输出结果 print_r($columnAverages);
两种方法最终都会输出每一列的平均值数组,比如第一列平均值为343.375,第二列平均值为208.125,以此类推。
注:如果你的二维数组存在行数列数不一致的情况,需要额外处理(比如跳过列数不足的行),但从示例来看所有行都是5列,上述代码可直接使用。
内容的提问来源于stack exchange,提问作者308 freak
相关产品推荐
相关产品推荐

