这是我的代码,它有一个数组:
$zi = '1';
for ($zi = 1; $zi <= $v['Store']['stock']; $zi++) {
$options_array[$zi]= $zi;
}
var_dump($options_array);
Array
(
[0] => 0
[1] => 1
[2] => 2
)
为什么我的结果为零? 我把$ zi放在1,为什么呢?
答案 0 :(得分:0)
在php中有两种数组,数字索引数组和关联数组。您的输出似乎有点怀疑,但我可以告诉您,如果PHP数组的所有键都是数字,那么该数组将基于零。
我看到你上面的$ zi ='1'是怎样的,这与你创建一个基于数组的数组的方式一致,但它是关联的,你将无法简单地使用++运算符。我相信即使你使用一个数字的字符串,PHP仍将转换为数字索引数组。我建议不要试图实现一个基于数组的阵列,这是疯狂的。
希望此页面有助http://us2.php.net/manual/en/language.types.array.php
答案 1 :(得分:0)
您开始在索引1处设置$options_array
,因此索引0是基础类型的默认值。在这种情况下,它是一个整数,因此默认值为0.
答案 2 :(得分:0)
由于我的评论结果是正确的:问题是,在您到达所提供的代码块之前,您已在0
中拥有了一个属性$options_array
。您可以使用$options_array = []
或$options_array = array()
(对于较旧的php版本)从新数组开始。您也可以使用0
删除属性unset($options_array[0])
。