Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算数组中值的百分比_Php_Arrays - Fatal编程技术网

Php 计算数组中值的百分比

Php 计算数组中值的百分比,php,arrays,Php,Arrays,我有以下数组$browser: Array ( [2] => Array ( [0] => Internet Explorer [1] => 5809 ) [3] => Array ( [0] => Chrome [1] => 9205 ) [4] => 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
        )
有没有办法计算每个元素的百分比。我试过这个功能:

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>';
}
//计算总和;首先将数组转换成只有整数的形式,然后对该数组求和
$sum=array_-sum(array_-map(函数($a){return$a[1];},$browser));
//遍历数组,打印每个浏览器的百分比(值/总和)
foreach($info作为浏览器){
回显“浏览器的百分比”。$info[0].='。四舍五入($info[1]/$sum)*100)。“%
”; }
尝试以下方法:

// 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>';
}
//计算总和;首先将数组转换成只有整数的形式,然后对该数组求和
$sum=array_-sum(array_-map(函数($a){return$a[1];},$browser));
//遍历数组,打印每个浏览器的百分比(值/总和)
foreach($info作为浏览器){
回显“浏览器的百分比”。$info[0].='。四舍五入($info[1]/$sum)*100)。“%
”; }
尝试以下方法:

// 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>';
}
//计算总和;首先将数组转换成只有整数的形式,然后对该数组求和
$sum=array_-sum(array_-map(函数($a){return$a[1];},$browser));
//遍历数组,打印每个浏览器的百分比(值/总和)
foreach($info作为浏览器){
回显“浏览器的百分比”。$info[0].='。四舍五入($info[1]/$sum)*100)。“%
”; }
尝试以下方法:

// 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>';
}
//计算总和;首先将数组转换成只有整数的形式,然后对该数组求和
$sum=array_-sum(array_-map(函数($a){return$a[1];},$browser));
//遍历数组,打印每个浏览器的百分比(值/总和)
foreach($info作为浏览器){
回显“浏览器的百分比”。$info[0].='。四舍五入($info[1]/$sum)*100)。“%
”; }

你能解释一下你想做什么吗?计算总数中所有数字的总和。将百分比计算为total/100*number。我想替换每个元素的百分比。例如,对于
internetexplorer
我希望
5809
成为
65.51%
“例如”等等。迭代每个元素,找到所有数组值组合在一起的总和($total),然后($value*100)/$total乍一看,我可以说
打印数组
什么都不是,可能您想改用
print\r
!你能解释一下你想做什么吗?计算总数中所有数字的总和。将百分比计算为total/100*number。我想替换每个元素的百分比。例如,对于
internetexplorer
我希望
5809
成为
65.51%
“例如”等等。迭代每个元素,找到所有数组值组合在一起的总和($total),然后($value*100)/$total乍一看,我可以说
打印数组
什么都不是,可能您想改用
print\r
!你能解释一下你想做什么吗?计算总数中所有数字的总和。将百分比计算为total/100*number。我想替换每个元素的百分比。例如,对于
internetexplorer
我希望
5809
成为
65.51%
“例如”等等。迭代每个元素,找到所有数组值组合在一起的总和($total),然后($value*100)/$total乍一看,我可以说
打印数组
什么都不是,可能您想改用
print\r
!你能解释一下你想做什么吗?计算总数中所有数字的总和。将百分比计算为total/100*number。我想替换每个元素的百分比。例如,对于
internetexplorer
我希望
5809
成为
65.51%
“例如”等等。迭代每个元素,找到所有数组值组合在一起的总和($total),然后($value*100)/$total乍一看,我可以说
打印数组
什么都不是,可能您想改用
print\r