[英]Zero in increment array started at 1
这是我的代码,用于拥有一个数组:
$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,为什么呢?
在php中,有两种类型的数组:数字索引数组和关联数组。 您的输出似乎有点怀疑,但我可以告诉您,如果PHP数组的所有键都是数字键,则该数组将基于零。
我看到上面有$ zi ='1',这与创建一个基于数组的数组类似,但它是关联的,您将不能简单地使用+ +运算符。 我相信,即使您使用的字符串是数字,PHP仍将转换为数字索引数组。 我建议不要尝试实现基于一个的数组,这是疯狂的。
希望该页面对http://us2.php.net/manual/en/language.types.array.php有帮助
您开始在索引1处设置$options_array
,因此索引0等于基础类型的默认值。 在这种情况下,它是一个整数,因此默认值为0。
正如我的评论所证明的是正确的:问题在于,在进入显示的代码块之前, $options_array
的属性已经为0
。 您可以使用$options_array = []
或$options_array = array()
(适用于较早的php版本)从一个全新的数组开始。 您也可以使用unset($options_array[0])
删除属性0
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.