首页 后端开发 PHP问题 php怎么获取数组不为空的长度

php怎么获取数组不为空的长度

Apr 26, 2023 am 09:06 AM

在PHP中,数组是一种非常常用的数据结构,许多编程场景中我们经常需要使用到数组。那么在处理数组时,经常需要考虑到数组是否为空以及如何获取数组的长度。

PHP提供了许多函数来处理数组,比如判断数组是否为空的函数empty(),判断数组元素是否存在的函数isset(),获取数组长度的函数count()等等。本文将重点介绍如何获取数组不为空的长度。

当我们使用count()函数来获取数组长度时,如果数组为空,将返回0。但是在某些场景中,需要获取数组不为空的长度,那该怎么办呢?

一种常见的方法是使用循环来遍历数组,统计其中不为空的元素个数。具体实现方式如下所示:

function countNotNull($arr){
    if(!is_array($arr)) return 0;
    $count = 0;
    foreach($arr as $item){
        if(!empty($item)){
            $count++;
        }
    }
    return $count;
}

$arr = array(1, null, 3, "", 5, array());
echo countNotNull($arr); // output: 3
登录后复制

以上代码首先判断数组是否为空以及是否为数组类型,防止传入非法参数导致的错误。接着通过遍历每一个元素,统计其中不为空的元素个数。最后返回该值。

这种方法虽然比较简单,但是在数组元素比较多时,效率较低。另外,在多次使用该函数时,可能会带来一些重复的工作。

一种更高效的方案是使用array_filter()函数来过滤掉空元素,再使用count()函数来获取数组的长度。具体实现方式如下所示:

function countNotNull2($arr){
    if(!is_array($arr)) return 0;
    $newArr = array_filter($arr);
    return count($newArr);
}

$arr = array(1, null, 3, "", 5, array());
echo countNotNull2($arr); // output: 3
登录后复制

以上代码先进行了参数的合法性判断,然后使用array_filter()函数过滤掉空元素,返回一个新的数组。再使用count()函数获取该新数组的长度,即为数组不为空的长度。

需要注意的是,使用array_filter()函数过滤掉的是空元素(如0、“”、null、false等),而不是仅仅过滤空字符串。

总之,在PHP中,获取数组不为空的长度确实有多种方法,以上介绍的只是常见的几种。读者可以根据实际需求来选择适当的方法。

以上是php怎么获取数组不为空的长度的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1276
29
C# 教程
1256
24