如何在数组php中仅获取非空元素计数

Posted

技术标签:

【中文标题】如何在数组php中仅获取非空元素计数【英文标题】:how to get only not null element count in array php 【发布时间】:2011-12-02 02:54:34 【问题描述】:

我只想获得该数组中的非空值计数,如果我使用count()sizeof,它也会获得空索引。

就我而言

我有一个这样的数组Array ( [0] => )

count1 。但我想得到非空计数,在这种情况下它应该是0,我该怎么做,请帮助...... .....

【问题讨论】:

只有NULL''(空字符串)和FALSE 也可以删除(基本上所有FALSE in php)? 【参考方案1】:

只需使用 array_filter() 而无需回调

print_r(array_filter($entry));

【讨论】:

【参考方案2】:
$count = count(array_filter($array));

array_filter 将删除计算结果为false 的所有条目,例如null、数字0 和空字符串。如果您只想删除null,您需要:

$count = count(array_filter($array,create_function('$a','return $a !== null;')));

【讨论】:

【参考方案3】:

类似...

$count=0;
foreach ($array as $k => $v)

    if (!empty($v))
    
        $count++;
    

应该可以解决问题。 您也可以将其包装在如下函数中:

function countArray($array)

$count=0;
foreach ($array as $k => $v)

    if (!empty($v))
    
        $count++;
    

return $count;



echo countArray($array);

【讨论】:

你应该使用 isset 不为空。 empty 将返回 true 为 false 和 0【参考方案4】:

虽然我对 PHP 不太擅长,但我认为您应该以编程方式从数组中删除空元素 the link might help

【讨论】:

【参考方案5】:

一个选项是

echo "Count is ".count(array_filter($array_with_nulls, 'strlen'));

如果你不计算空值和空值,你可以这样做

echo "Count is ".count(array_filter($array_with_nulls));

在此博客中您可以看到更多信息

http://briancray.com/2009/04/25/remove-null-values-php-arrays/

【讨论】:

以上是关于如何在数组php中仅获取非空元素计数的主要内容,如果未能解决你的问题,请参考以下文章

如何从 React 中的对象数组中仅返回 3 个元素

如何在输出中仅显示数组元素

PHP中基于位掩码获取数组值

如何获取大于数组列表中当前元素的数字元素的计数[关闭]

如何在 GraphQL Nexus 的数组中定义非空元素?

获取数组中每个索引的子文档元素计数并更新子文档键 - 数组中的子文档(IN MONGODB)