2015-08-05 3 views
-1

Я пробовал много трюков для вычисления процента каждого значения в этом массиве, но не могу найти решение. Значения - это точки. Спасибо.PHP вычисляет процент

<?php 

$data = array(
    'item1' => array(
     'label' => 'Label 1', 
     'value' => 120 
    ), 
    'item2' => array(
     'label' => 'Label 2', 
     'value' => 90 
    ), 
    'item3' => array(
     'label' => 'Label 3', 
     'value' => 88 
    ), 
    'item4' => array(
     'label' => 'Label 4', 
     'value' => 19 
    ) 
); 

?> 

Последнее, что я попытался следующий:

<?php 

$percentages = array(); 
$total_items = count($data); 

foreach ($data as $item) { 

    foreach ($item as $k => $v) { 

     if ($k == 'value') { 

      $percentages[] = ($v/$total_items) * 100; 

     } 

    } 

} 

?> 

Надеется, что это изменение будет препятствовать вам знать больше о том, что я пытаюсь добиться.

+2

загрузить вы слишком –

+0

Как сказал Абдулла, включите то, что вы пробовали в своем вопросе, получение процента значения в основном зависит от правильного математического выражения. – Epodax

+0

@Fredmat, вы должны сначала показать свои попытки! – Raptor

ответ

2

Вам нужно будет сделать два прохода по данным, один, чтобы вычислить сумму, то следующий рассчитать проценты:

$total = 0; 
$percentages=[]; 

foreach ($data as $item) 
    $total += $item['value']; 

foreach ($data as $key=> $item) 
    $percentages[$key]= $item['value']/($total /100); 

var_dump($percentages); 

пример: http://codepad.viper-7.com/qAQ5YW

+0

Он отлично работает, спасибо – Fredmat

Смежные вопросы