Я пробовал много хитростей, чтобы рассчитать процент каждого значения в этом массиве, но не могу найти решение. Значения являются точками.
Спасибо.
<?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;
}
}
}
?>
Надеюсь, что эта редакция даст вам больше информации о том, чего я пытаюсь достичь.
Вам нужно будет сделать два прохода по данным, один для вычисления итогового значения, а затем следующий для вычисления процентных значений:
$total = 0;
$percentages=[];
foreach ( $data as $item )
$total += $item['value'];
foreach ( $data as $key=> $item )
$percentages[$key]= $item['value'] / ($total /100);
var_dump($percentages);
Других решений пока нет …