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

使用COUNT_RECURSIVE的count()统计二维数组返回错误结果的原因及解决

问题原因

当使用count($chessboard, COUNT_RECURSIVE)时,递归统计会把每个子数组本身也算作一个元素。你的棋盘有8个子数组,每个子数组包含8个元素,总统计数就是8(子数组本身) + 8×8(子数组内的元素)=72,这就是结果不符合预期的原因。

修正方法

有两种常用的正确统计方式:

  • 手动循环累加
    遍历外层数组,逐个统计每个子数组的元素数量并相加:
$total = 0;
foreach ($chessboard as $row) {
    $total += count($row);
}
echo $total; // 输出64
  • 用数组函数组合计算
    利用array_map和array_sum简化代码:
$total = array_sum(array_map('count', $chessboard));
echo $total; // 输出64

这两种方式都只会统计子数组内的元素,不会把外层的子数组本身计入总数,最终得到正确的64个元素统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:39:52