在php中以0开始数字文字

在php中以0开始数字文字,php,arrays,Php,Arrays,我创建这段代码是为了使用php初始化和输出关联数组的元素 $a=array("first"=>999,"two"=>099); foreach ($a as $key => $value) { echo $a[$key]."<br />"; } $a=array(“第一个”=>999,“两个”=>099); foreach($a作为$key=>$value){ 回显$a[$key]。“”; } 带有键的元素首先输出999,而其他元素输出0。 问题是为什么

我创建这段代码是为了使用php初始化和输出关联数组的元素

$a=array("first"=>999,"two"=>099);
foreach ($a as $key => $value) {
    echo $a[$key]."<br />";
}
$a=array(“第一个”=>999,“两个”=>099);
foreach($a作为$key=>$value){
回显$a[$key]。“
”; }
带有键的元素首先输出999,而其他元素输出0。
问题是为什么999不能正确存储为字符串输出,而099不能。。有人解释这个吗?谢谢

在数组中以字符串的形式标记编号

$a=array("first" => "999", "two" => "099");
    foreach($a as $key => $value) {
    echo $value."<br />";
    }
$a=array(“第一个”=>“999”,“两个”=>“099”);
foreach($a作为$key=>$value){
回显$value.“
”; }
0开始数字文字表示。在(基数8)中,没有
9
。数字
99
在八进制中不存在。

在PHP中,数字没有前缀
0
s。看来。如果您总是希望此数组有三个数值(如果只有1或2个字符长,则要添加前导0),则需要使用字符串或正确的数字()。您可以这样做:
echo str_pad($a[$key],3,0,str_pad_LEFT)。“
将在数字的前面添加零,直到字符串长度为3。此外,如果不想这样做,则不需要执行
$a[$key]
。你可以只做
echo$value,因为for循环为您提供每个数组键值对的
$key
$value
。这与数组无关: