Средние значения PHP в нескольких массивах до 1 массива

У меня есть массив, полный чисел, и я могу легко получить среднее значение одного массива с.

if(count($averageprice)) {
$averageprice= array_filter($averageprice);
$averageprice= array_sum($averageprice)/count($averageprice);
}

Но скажем, у меня есть 4 массива все с ценами. Все они в правильном порядке и содержат одинаковое количество значений. Как я могу создать отдельный массив, который сохраняет порядок каждого значения, но усредняет его между всеми массивами?

Спасибо!

Отредактируйте для лучшего примера:

$array1 =array(10,15,20);
$array2 =array(14,13,22);
$array3 =array(12,18,26);

Я хочу новый массив, который усредняет все значения в массиве в один массив. Обратите внимание, что количество массивов не всегда одинаково для каждого времени. Однако независимо от того, сколько это массивов, в них всегда будет одинаковое количество значений. (Иногда 4, иногда 8 и т. Д.)

-1

Решение

ПЕРВЫЙ ПУТЬ: массивы в разных переменных

$arr0 = [0,10,2];
$arr1 = [0,20,4];
$arr2 = [0,30,6];

Примечание: array_filter удалит 0 … Например: среднее
из [0, 10, 2] будет 6 (то есть: (10 + 2) / 2) и НЕ (0 + 10 + 2) / 3 = 4.
это действительно то, что вы имеете в виду? Вы хотите сбросить 0 до усреднения?

$arr0 = array_filter($arr0);
$arr1 = array_filter($arr1);
$arr2 = array_filter($arr2);
print_r($arr0); // (just to point out again the previous comment)
Array
(
[1] => 10
[2] => 2
)

ЭТО ВАЖНАЯ ЛИНИЯ:

$averages = array_map(function($a){return array_sum($a)/count($a);}, [$arr0, $arr1, $arr2]);
print_r($averages)
Array
(
[0] => 6
[1] => 12
[2] => 18
)

ВТОРОЙ ПУТЬ: Все массивы внутри большего массива.

$arrs = [[0,10,2], [0,20,4], [0,30,6]];
$arrs = array_map(function($a){return array_filter($a);}, $arrs);
$result = array_map(function($a){return array_sum($a) / count($a);},  $arrs);
print_r($arrs);
Array
(
[0] => Array
(
[1] => 10
[2] => 2
)

[1] => Array
(
[1] => 20
[2] => 4
)

[2] => Array
(
[1] => 30
[2] => 6
)

)
print_r($result);
Array
(
[0] => 6
[1] => 12
[2] => 18
)
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector