You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教:PHP中count($fruits,1)对多维数组计数输出6的原因

为什么PHP代码count($fruits, 1)的输出是6?

嘿,这个问题其实搞懂PHP里count()函数的递归计数逻辑就完全清楚啦!

首先,先明确count()函数的第二个参数作用:PHP的count()函数默认只统计数组最外层的元素,但如果把第二个参数设为1(或者官方推荐的常量COUNT_RECURSIVE),它就会递归遍历多维数组的所有层级,把每个子数组本身也当作一个元素来计数。

我们来拆解你给出的数组:

$fruits = array("banana", "pineapple", array("apple", "mango"), "guava");

现在一步步统计(开启递归计数的情况下):

  • 最外层第一个元素 "banana" → 计数+1
  • 最外层第二个元素 "pineapple" → 计数+1
  • 最外层第三个元素是子数组 array("apple", "mango"):
    • 这个子数组本身算作1个元素 → 计数+1
    • 子数组内的 "apple" → 计数+1
    • 子数组内的 "mango" → 计数+1
      这部分总共贡献了3个计数
  • 最外层第四个元素 "guava" → 计数+1

把这些数字加起来:1+1+3+1=6,这就是代码运行后输出6的原因啦!

如果用默认的count($fruits)(也就是第二个参数用默认值0/COUNT_NORMAL),只会统计最外层的4个元素,结果就是4。

内容的提问来源于stack exchange,提问作者Ruwansiri Pathirana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:25:58