我知道这一定是一个相当简单的问题,但我还没有成功找到答案。
我有以下数组
$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;
当我使用print_r($ qid)时,我得到以下内容
Array (
[0] => Array ( [0] => 1 [1] => 0 )
[1] => Array ( [0] => 2 )
[2] => Array ( [0] => 3 )
[3] => Array ( [0] => 4 )
)
我不明白 [1] => 0
in
[0] => Array ( [0] => 1 [1] => 0 )
如果有人能解释 [1] => 0 表示在这个数组中,我非常感激。感谢。
编辑:事实证明我的数组确实与我上面写的不同,因为它后来在代码中进行了修改。谢谢大家的好消息。我仍在阅读所有这些并试图让我的思想理解它们(Arrays把我的想法变成了jello)。
答案 0 :(得分:4)
[1] => 0
表示值为0
的数组元素。
[]
中的数字是数组键。所以[1]
是数字索引数组的第二个元素(以[0]
开头),第二个元素([1]
)的值是0
。
PHP使用=>
作为运算符将数组键/索引与其值相关联。
Array (
[0] => Array ( [0] => 1 [1] => 0 )
[1] => Array ( [0] => 2 )
[2] => Array ( [0] => 3 )
[3] => Array ( [0] => 4 )
)
外部数组是数字索引数组,其每个元素都是子数组。第一个([0]
)是一个包含2个元素的数组,而其余的([1] through [3]
)是只包含一个元素的数组。
答案 1 :(得分:3)
这个二维数组实际上是一维数组的数组,这就是你得到嵌套的原因。 [x] => y
位只表示数组的索引x
的值为y
。
现在,在这种情况下,您的输出实际上与您的代码不匹配,因为
$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;
print_r($qid);
产生
Array (
[0] => Array ( [0] => 1 )
[1] => Array ( [0] => 2 )
[2] => Array ( [0] => 3 )
[3] => Array ( [0] => 4 )
)
如果你想得到:
Array (
[0] => Array ( [0] => 1 [1] => 0 )
[1] => Array ( [0] => 2 )
[2] => Array ( [0] => 3 )
[3] => Array ( [0] => 4 )
)
(第一个数组有两个元素),你实际上需要:
$qid[0][0]=1;
$qid[0][1]=0;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;
print_r($qid);
答案 2 :(得分:2)
您可能在某处向$ qid [0]添加了第二项($ qid [0] [1] = 0)。这段代码
$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;
为我输出正确的值(没有[1] => 0:
Array ( [0] => Array ( [0] => 1 ) [1] => Array ( [0] => 2 ) [2] => Array ( [0] => 3 ) [3] => Array ( [0] => 4 ) )
答案 3 :(得分:1)
这意味着原始数组中的索引0包含另一个包含2个项目的数组
具体来说,[1] => 0
表示“子”数组的第2项包含数字0。
答案 4 :(得分:1)
[1] => 0
以这种简单的方式我们可以说1是你的数组键,0是1键的值 0存储在数组的1键
感谢
答案 5 :(得分:1)
简单地说,你有一个数字索引的多维数组。 http://php.net/manual/en/language.types.array.php应该包含您需要阅读的所有信息。
至于为什么您拥有[1] => 0
,您需要更深入地查看代码以了解它的分配位置。
答案 6 :(得分:1)
使用print_r打印出数组后得到以下结果:
Array
(
[0] => Array
(
[0] => 1
)
[1] => Array
(
[0] => 2
)
[2] => Array
(
[0] => 3
)
[3] => Array
(
[0] => 4
)
)
我想,您可能已在代码中的某处设置了$ gid [0] [1]的值。