如何在PHP中将多个数组平均为一个?

Bla*_*Cat 7 php arrays

假设我有 4 个数组,每个数组的值数量相同:

$array1 = array(0, 7, 5, 0);
$array2 = array(2, 6, 10, 0);
$array3 = array(4, 8, 15, 10);
$array4 = array(6, 7, 20, 10);
Run Code Online (Sandbox Code Playgroud)

我想为每个索引计算所有 4 个数组的平均值。所以我应该得到这样的东西:

array(3, 7, 12.5, 5);
Run Code Online (Sandbox Code Playgroud)

Pej*_*yri 3

对于更动态的使用,例如 6 个或更多数组,您可以使用以下代码:

$all_arrays = [
    array(0, 7, 5, 0),
    array(2, 6, 10, 0),
    array(4, 8, 15, 10),
    array(6, 7, 20, 10),
    array(1, 2, 3, 4),
    array(5, 6, 7, 8),
    // more arrays
];

$each_array_count = count($all_arrays[0]); // 4
$all_arrays_count = count($all_arrays); // 6

$output = [];

for ($i = 0; $i < $each_array_count; $i++) {
    for ($j=0; $j < $all_arrays_count; $j++) { 
        $output[$i] += $all_arrays[$j][$i] / $all_arrays_count;        
    }
}

echo "<pre>";
var_dump($output);
Run Code Online (Sandbox Code Playgroud)

输出:(演示

Warning: Undefined array key 0 in /in/E783F on line 20

Warning: Undefined array key 1 in /in/E783F on line 20

Warning: Undefined array key 2 in /in/E783F on line 20

Warning: Undefined array key 3 in /in/E783F on line 20
<pre>array(4) {
  [0]=>
  float(3)
  [1]=>
  float(6)
  [2]=>
  float(10)
  [3]=>
  float(5.333333333333333)
}
Run Code Online (Sandbox Code Playgroud)