从一组对象计算百分比

时间:2011-08-23 14:06:54

标签: php arrays

如何计算像这样的数组中有多少元素具有非空数据字段,以百分比形式?

[elements] => Array
        (   [abc] => Object
                (                    
                    [data] => Array ([0] => 'something')                      
                )    

            [def] => Object
                (                    
                    [data] => Array ()

                )

            ...

在这个例子中它将是50%,因为有2个元素,其中1个在数据中有某些东西......

2 个答案:

答案 0 :(得分:3)

$percent = count(array_filter($elements, function($ele){return !empty($ele->data);})) / count($elements) *100;

答案 1 :(得分:0)

那是什么循环:

if (sizeof($elements) != 0) { // Avoids division by zero
  $count = 0;
  for ($i=0; $i<sizeof($elements); $i++) {
    if (!empty($element[$i]->data)) {
      $count++;
    }
  }

  $pcent = ($count / sizeof($elements)) * 100; // You can use round($pcent) to avoid some horrible floats

  echo $pcent;
}