COUNT数组中非NULL变量的个数


COUNT number of variables in array that are not NULL

我有一个数组范围$row['ADDwav'] - $row['ADDwav16']

我如何计算这些isset()而不是NULL的数量?

您可以使用array_filteris_null(作为回调):

count(array_filter($row, "is_null"))

如果您想要不是 null的那些,那么您必须从原始数组长度中减去它仍然count($row) - count(array_filter(...))

试试这样

$counter = 0;
foreach($row as $r)
{
    if($r !== null)
    {
        $counter++;
    }
}
echo "Total not null items : " . $counter;

上面的代码可以工作。并且foreach中的值都是设置好的,否则将不会循环它们;)

如果你的数组是这样的:

$row = array(
    'ADDwav' => null,
    'ADDwav1' => 'somevalue',
    'ADDwav2' => 'anothervalue',
    'ADDwav3' => '',
    'ADDwav...' => '...',
    'ADDwav16' => null
);

如果你想计算非空或null的值,那么你必须在下一个表单中修改代码:

$counter = 0;
foreach($row as $k => $r)
{
    if($r !== null || $r !== '')
    {
        $counter++;
    }
}
echo "Total not null items : " . $counter;

使用array_filter和is_null

   foreach($row as $r)
      if($r !== null)
...
..
.

这将删除为false或null的数组…

            $entry = array(
               0 => 'foo',
               1 => false,
               2 => -1,
               3 => null,
               4 => ''
              );
            echo  count(array_filter($entry));