php怎么知道数组有多少个值_PHP统计数组包含值的个数

蓮花仙者
发布: 2025-12-13 10:49:02
原创
355人浏览过
要统计PHP数组中非空值个数,可用五种方法:一、array_filter()配合count()过滤默认空值;二、foreach手动判断;三、array_reduce()函数式累积;四、array_filter()加ARRAY_FILTER_USE_BOTH联合键值判断;五、array_keys()与array_intersect_key()保留原始键名统计。

php怎么知道数组有多少个值_php统计数组包含值的个数

如果您需要获取PHP数组中实际包含的值的数量,必须区分数组的总长度与非空值的数量。以下是统计数组中非空值个数的多种方法:

一、使用array_filter()配合count()

该方法先过滤掉所有被视为“空”的值(如null、false、0、""、array()等),再统计剩余元素个数。它适用于需要排除逻辑上为空的值的场景。

1、定义目标数组,例如:$arr = [1, "", null, "hello", 0, false, 42];

2、调用array_filter()不传回调函数,默认移除所有空值:$filtered = array_filter($arr);

立即学习PHP免费学习笔记(深入)”;

3、对过滤后的数组使用count():$count = count($filtered);

4、输出结果:echo $count; 此时输出为3(仅保留1、"hello"、42)

二、使用foreach循环手动计数

该方法提供完全可控的判断逻辑,可自定义“什么是空值”,例如保留0和"0",仅排除null和空字符串。

1、初始化计数器变量:$count = 0;

2、遍历数组每个元素:foreach ($arr as $value) {

3、添加自定义判断条件,例如:if ($value !== null && $value !== "") { $count++; }

4、循环结束后,$count即为满足条件的值的个数 此方式可精确控制“空”的定义

三、使用array_reduce()进行累积计数

该方法以函数式编程方式实现统计,适合嵌套逻辑或需复用判断规则的场景。

Motiff妙多
Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334
查看详情 Motiff妙多

1、定义判断函数,例如:$isNonEmpty = function($carry, $item) { return $item !== null && $item !== ""; };

2、调用array_reduce()并初始化累加器为0:$count = array_reduce($arr, function($carry, $item) use ($isNonEmpty) { return $isNonEmpty($carry, $item) ? $carry + 1 : $carry; }, 0);

3、注意:array_reduce的回调中需显式返回累加器值 回调函数必须有return语句,否则结果为null

四、使用count()配合ARRAY_FILTER_USE_BOTH筛选特定键值对

当需要基于键和值联合判断是否计入统计时,此方法可访问键名与键值,适用于关联数组的条件计数。

1、定义带键值判断的回调函数:$callback = function($value, $key) { return is_string($value) && strlen(trim($value)) > 0; };

2、调用array_filter()并传入ARRAY_FILTER_USE_BOTH标志:$filtered = array_filter($arr, $callback, ARRAY_FILTER_USE_BOTH);

3、对结果调用count():$count = count($filtered); 此方式支持键名参与判定逻辑

五、使用array_keys()配合array_intersect_key()提取非空索引

该方法先获取所有非空值的键名,再通过键名交集还原原始结构中的对应元素,适用于需保留原始键名的统计需求。

1、获取所有非空值的键:$nonEmptyKeys = array_keys(array_filter($arr));

2、用这些键从原数组中提取对应元素:$nonEmptyValues = array_intersect_key($arr, array_flip($nonEmptyKeys));

3、统计提取结果:$count = count($nonEmptyValues); 结果数组保持原始键名,便于后续定位

以上就是php怎么知道数组有多少个值_PHP统计数组包含值的个数的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号