如何计算像这样的数组中有多少元素具有非空数据字段,以百分比形式?
[elements] => Array
( [abc] => Object
(
[data] => Array ([0] => 'something')
)
[def] => Object
(
[data] => Array ()
)
...
在这个例子中它将是50%,因为有2个元素,其中1个在数据中有某些东西......
答案 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;
}