簡體   English   中英

計算數組中值的百分比

[英]Calculate the percentage of values in an array

我有以下數組$browser

Array
(
    [2] => Array
        (
            [0] => Internet Explorer
            [1] => 5809
        )

    [3] => Array
        (
            [0] => Chrome
            [1] => 9205
        )

    [4] => Array
        (
            [0] => Safari
            [1] => 5288
        )

    [5] => Array
        (
            [0] => Opera
            [1] => 102
        )

有沒有辦法計算每個元素的百分比。 我試過這個funtcion:

foreach ($browser as $key => $value){
print_array(array_avg($browser[$key][1]) );
    }

function array_avg($array, $round=1){
$num = count($array);
return array_map(
    function($val) use ($num,$round){
        return array('count'=>$val,'avg'=>round($val/$num*100, $round));
    },
    array_count_values($array));
}

我的代碼中有錯誤嗎? 謝謝!

嘗試這樣的事情:

// calculate the sum; first transform the array in something with only integers, then sum that array
$sum = array_sum(array_map(function ($a) { return $a[1]; }, $browser));

// walk through the array, print the percentage (value / sum) for each browser
foreach ($browser as $info) {
    echo 'Percentage for browser '.$info[0].' = '.round(($info[1]/$sum)*100).'%<br>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM