【问题标题】:How does PHP count objects in multidimensional arrays?PHP如何计算多维数组中的对象?
【发布时间】:2019-10-11 21:17:16
【问题描述】:

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

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

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

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

【问题讨论】:

  • 第一层有4个(其中一个是数组),第二层有2个=6??
  • 它是该数组中键的总数。嵌套数组位于父数组的键 2 处,因此仍然很重要。 4(父)+ 2(子)= 6
  • 所以它加了+1,因为它将数组计为父数组的元素。感谢您的快速解答。我很困惑,因为在前几年的一次测试中,我看到 5 是正确答案。一定是老师弄错了。

标签: php arrays multidimensional-array count


【解决方案1】:
$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;

【讨论】:

  • 感谢您澄清答案。
猜你喜欢
  • 1970-01-01
  • 2014-10-03
  • 2019-06-03
  • 2016-10-13
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2021-12-10
  • 2013-10-26
相关资源
最近更新 更多