首页 > 解决方案 > PHP如何计算多维数组中的对象?

问题描述

当我学习数组的计数函数并查看一些示例时,我发现了一些我不明白的东西。你能澄清一下下面例子中的行为吗?

我在 PHP 手册中阅读了 count 函数的工作原理,并且我知道函数中的第二个参数意味着它将递归地对数组进行计数。

<?php
$fruits = array ("apple", "orange", array("pear" , "mango"), "banana");
echo (count($fruits,1));

所以没有 1 作为第二个参数的结果应该是 4 并且应该是 5,但我得到 6 作为输出。

标签: phparraysmultidimensional-arraycount

解决方案


$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;

推荐阅读