массивы — вычислить процент от нескольких значений итога с переполнением стека

У меня есть массив нескольких значений.

foreach($results as $row) {
$count = $row['count'];
$type = $row['type'];
$array[$type][] = $count;
}

Когда я вывожу массив в таблицу, это выглядит так

 Type   Count
AA      4
AE     59
AF     13
BB     44
BC     16
BD     36

Теперь я хочу третий столбец с процентами, но я не знаю, как реализовать?

например АА составляет 5%, АЕ составляет 39% и т. Д.

Как мне это сделать?

1

Решение

Я не получил те же расчеты, которые вы предлагаете, но вот мой метод:

$results=[
['type'=>'AA','count'=>4],
['type'=>'AE','count'=>59],
['type'=>'AF','count'=>13],
['type'=>'BB','count'=>44],
['type'=>'BC','count'=>16],
['type'=>'BD','count'=>36]
];
$total=array_sum(array_column($results,'count'));
foreach($results as $row) {
$array[$row['type']]=[$row['count'],(int)round($row['count']/$total*100)];
// or round($row['count']/$total*100).'%' <-- if you want the % sign
}
var_export($array);

Выход:

array (
'AA' =>
array (
0 => 4,
1 => 2,
),
'AE' =>
array (
0 => 59,
1 => 34,
),
'AF' =>
array (
0 => 13,
1 => 8,
),
'BB' =>
array (
0 => 44,
1 => 26,
),
'BC' =>
array (
0 => 16,
1 => 9,
),
'BD' =>
array (
0 => 36,
1 => 21,
),
)
1

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

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

По вопросам рекламы [email protected]