我有一个数组范围$row['ADDwav'] - $row['ADDwav16']
我如何计算这些isset()而不是NULL的数量?
您可以使用array_filter
与is_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));