如何用PHP计算数组的空值?

时间:2018-12-20 01:29:00

标签: php arrays

如何计算其值为空的数组的数量。 例如,我有数组结果:

    Array (
       [0] => 'A',
       [1] => 'B',
       [2] => 'C',
       [3] => '',
       [4] => '',
       [5] => 'F',
       [6] => '')

这里有3个空数组值(索引3、4、6),因此如何获取空数组值的数量

4 个答案:

答案 0 :(得分:3)

$c = 0;
foreach($a as $v) {
    if ($v === '') { 
        $c++;
    }
}
echo "count: $c\n";

-或-

$t = array_count_values($a);
echo "count: {$t['']}\n";

PHP手册:http://php.net/manual/en/function.array-count-values.php

答案 1 :(得分:1)

对于多维数组(也包括平面数组),您可以使用

 $a =  Array (
   0 => 'A',
   1 => 'B',
   2 => 'C',
   3 => '',
   4 => '',
   5 => 'F',
   6 => '',
   7 => ['','']
  );

$total = 0;

array_walk_recursive($a, function($i) use (&$total){
 if($i === '') ++$total;
});

echo $total;

输出

5

Sandbox

可能最短的方法是这样:

echo count(array_intersect($a, ['']));

但是它不适用于嵌套数组

Sandbox

答案 2 :(得分:1)

$a = ['1', '2', '', '', '5', ''];
echo count($a) - count(array_filter($a)); // output: 3

答案 3 :(得分:0)

尝试一下:

<?php
$count = 0;
for ($i =0; $i < length($array); $i++) {
  if ($array[$i] == '')
    $count++;
}
?>