新闻中心

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

2025-12-13
浏览次数:
返回列表
要统计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);

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()进行累积计数

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

Figma Figma

Figma 是一款基于云端的 UI 设计工具,可以在线进行产品原型、设计、评审、交付等工作。

Figma 1371 查看详情 Figma

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统计数组包含值的个数的详细内容,更多请关注其它相关文章!


# 回调函数  # 键值对  # red  # 回调  # 键值  # php  # 兰州网站建设广告词优化  # 跨境网站建设企业排名  # 旅游营销推广计划  # 南京企业关键词排名  # 必应可以seo吗  # 大庆关键词排名优化软件  # 谢岗seo推广运营  # 南山神马seo网站推广  # 企业网站推广溦心hfqjwl  # 天河seo优化推广价格  # 自定义  # 有多少个  # 实训  # 累加器  # 适用于  # 中非  # 上传  # 键名 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 如何在网页中实现特定地点的随机图片展示  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  如何将HTML表格多行数据保存到Google Sheets  CSS Flexbox与媒体查询:实现响应式布局中元素的并排与堆叠  C++如何生成随机数_C++ random库使用方法与范围设置  J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  动漫花园资源网使用步骤_动漫花园资源网下载流程  Golang如何安装Swagger工具_GoSwagger文档生成环境  c++中的std::launder有什么实际用途_c++对象生命周期与指针优化  TikTok搜索不到用户发布内容怎么办 TikTok用户内容搜索优化方法  R星幕后开发视频泄露 包含《GTA6》等多款大作  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  AO3最新入口2025公告_AO3中文官网合集  如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流  1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】  J*aScript设计模式实践_j*ascript代码优化  解决Python logging 中 datefmt 导致时间戳固定不变的问题  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  淘宝网网页版登录入口 淘宝官方网页版快捷登录  处理嵌套交互式控件:前端可访问性指南  浏览器打开即用 美图秀秀网页版入口  mysql备份恢复性能优化_mysql备份恢复性能优化方法  支付宝如何设置安全保护_支付宝安全设置的全面教程  如何将HTML表格多行数据保存到Google Sheet  Go语言中高效处理x-www-form-urlencoded表单数据  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  CSS如何设置hover状态颜色_hover伪类调整背景或文字颜色  excel如何生成目录 excel一键生成工作表目录超链接  sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置  Lar*el 8 多关键词数据库搜索优化实践  生成rdflib自定义SPARQL函数:参数匹配与实践指南  照顾宝贝2小游戏点击立即在线玩  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  12306选座如何查看座位示意图_12306座位示意图解读与使用  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  深入理解Go语言中的指针类型:以*string为例  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  提升Kafka消费者健壮性:会话超时处理与消息处理语义  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  b站赚钱渠道_b站收益来源  Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  高德地图公交到站提醒失败如何解决 高德提醒权限设置  京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比  CSS实现侧边栏导航项全宽圆角悬停背景效果  曝R星经典之作开发图 设计简陋但信息密集!  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程 

搜索