为什么刚刚定义的数组count = 1?

时间:2014-11-28 16:10:29

标签: php

对不起我是重复的, 但我似乎没有找到我需要澄清的具体方案。

所以我的问题是为什么:

var = array ();
echo count (var);

打印0。

和此:

var = array (array());
echo count (var);

打印1?

谢谢!

4 个答案:

答案 0 :(得分:5)

因为您已将数组放入数组中。即使该内部数组为空,它仍然 SOMETHING

这就像把一个空的塑料袋放入另一个塑料袋中。那个外袋现在包含一个项目:另一个塑料袋。

答案 1 :(得分:1)

这是因为数组中存在一个值,内部数组是否为空无关紧要。

在索引0上存在一个空数组,这意味着数组不为空,因此计数结果为1。

答案 2 :(得分:1)

在第一种情况下,您创建一个空数组。

$var = array();

此数组的内容可能如下所示:

[ ]

这里什么都没有。所以,count($var)为零。

但是如果你创建一个nested数组,你就会有

$var = array(array());

$var的内容现在是这样的:

[ [] ]

内部数组里面没有任何东西。但是,外部数组内部有一个空数组。因此,count1

进一步说明:

将数组视为塑料盒。

在第一种情况下,框内没有任何内容,因此count0

但是,在第二种情况下,框内有一个空框。因此,count1

答案 3 :(得分:-1)

当你执行此操作var = array (array());时,你有二维数组。如果你熟悉java,它似乎是

Object var[][] = {
   {},
};

所以,var.length是“,但var[0].length是0