php - PHP如何计算多维数组中的对象?
问题描述
当我学习数组的计数函数并查看一些示例时,我发现了一些我不明白的东西。你能澄清一下下面例子中的行为吗?
我在 PHP 手册中阅读了 count 函数的工作原理,并且我知道函数中的第二个参数意味着它将递归地对数组进行计数。
<?php
$fruits = array ("apple", "orange", array("pear" , "mango"), "banana");
echo (count($fruits,1));
所以没有 1 作为第二个参数的结果应该是 4 并且应该是 5,但我得到 6 作为输出。
解决方案
$fruits = array("apple", "orange", array(), array("pear", "mango"), "banana");
echo (count($fruits, 1));
答案很简单。这段代码的输出是 7。
1) apple
2) orange
3) array()
4) array()
5) pear
6) mongo
7) banana
如果我想准确简单地解释一下:
<?php
$arr = ['a', 'b', array('c', 'd')];
$cnt = count($arr);
foreach($arr as $item) {
if(is_array($item)) {
$cnt += count($item);
}
}
echo $cnt;
推荐阅读
- php - 使用带有 Nova 按钮的 Laravel 事件/监听器
- sql - 带逗号的 Zabbix 键
- oracle - :new 和 :old 值在 oracle 触发器中动态变化
- mongodb - Mongodb pymongo 错误 DocumentTooLarge
- python - 如何在 if 语句中停止双倍加倍?
- supertype - 反向交易者问题
- javascript - es5 使用 promise 但在解析之前延迟返回
- c - 使用分配的字符缓冲区调用 DLL 函数,该函数填充在 Inno Setup 中
- reactjs - React JS 谷歌地图 - 对象不是函数
- angular - Angular Component.ts 模块中的对象类型问题