Мне интересно, как разбить массив на 100 кусков, а затем усреднить значения в этих кусках. Я дошел до использования array_chunk, но не могу понять, как усреднить значение в этих кусках. Это небольшая часть моего массива:
Array ( [0] => 70 [1] => 70 [2] => 70 [3] => 69 [4] => 69 [5] => 69 [6] => 70 [7] => 70 [8] => 70 [9] => 69 [10] => 69 [11] => 70 [12] => 70 [13] => 69 [14] => 70 [15] => 69 [16] => 69 [17] => 70 [18] => 69 [19] => 69 [20] => 69 [21] => 69 [22] => 69 ...
Я хочу следующее:
[0] => 70 (среднее из первых 100 значений в массиве)
И так далее
заранее спасибо
$arr = array_chunk(array(1,2,3,4,5,6,7,8,9), 3); while ($chunk = array_shift($arr)) { echo array_sum($chunk) / count($chunk) . PHP_EOL; }
дает:
2 5 8
И если вы измените его на 4
на кусок:
2.5 6.5 9
EDIT: 100 кусков:
$arr = range(1, 16734, 1); $arr = array_chunk($arr, ceil(count($arr) / 100)); while ($chunk = array_shift($arr)) { echo array_sum($chunk) / count($chunk) . PHP_EOL; }
$arr = range(1, 200); $arrs = array_chunk($arr, 5); // 5 is a number of elements in chunk foreach($arrs as $chunk) echo array_sum($chunk) / count($chunk) . "\n";
Поскольку вы хотите, чтобы среднее значение для первых 100, что-то вроде этого будет делать:
$chunks = array_chunk($array, 100); $sum = round(array_sum($chunks[0]) / count($a), 2); echo $sum;
Example