Высчитать сколько процентов занимает 1 пункт из общего числа

144
30 октября 2018, 16:50

Есть массив, в котором записаны цифры. В массиве много элементов, но вывожу я только 10.

Делаю так:

$mp=0; 
foreach ($newIDs2 as $key => $value) { 
    $mp++;
    if ($mp <= 10) {
       //вывожу число ($value)
    }
}

На выходе получаю так:

5
5
5
и т.д.

То есть получается что каждое число занимает 33.3%

Как на выходе получить такое:

5 - 33.3
5 - 33.3
5 - 33.3

Но чтобы считало % правильно, так как значения не всегда будут = 5, они всегда разные

Answer 1

Если найти процент от всех чисел, то :

$mp = 0; 
$data = [];
$sum = 0;
foreach ($newIDs2 as $key => $value)
{ 
    if ($mp < 10) {
        $data[] = $value;
    }
    $sum += $value;
    $mp++;
}
foreach($data as $value) {
    echo $value.' - '.round(($value / $sum * 100), 2).'%'. PHP_EOL;
}

Вариант 2

$sum = array_sum($newIDs2);
$length = count($newIDs2);
if($length>10){
   $length = 10;
}
for($i=0; $i<$length; $i++) {
    echo newIDs2[$i].' - '.round((newIDs2[$i] / $sum * 100), 2).'%'. PHP_EOL;
}
READ ALSO
Ошибка в mod_rewrite

Ошибка в mod_rewrite

Использую стандартные настройки

150
Проблема добавление данных laravel

Проблема добавление данных laravel

всем доброе время суток не могу добавть запись в чем проблема именно в моей ситуации

169
Всплывающий label

Всплывающий label

На странице есть 2 чекбокса

175
Laravel seeds и factories для связанных таблиц

Laravel seeds и factories для связанных таблиц

Пытаюсь освоиться с seeds, factories и использование Faker в Laravel 56

243