将数字加载到PHP数组中 - 遇到意外问题

4

我正在尝试定义一个数字数组,例如:

$days_pages = array(
'monday' => array(001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 017, 018, 019, 020),
...
);

但是,当我执行以下操作:

print_r($days_pages);

它显示

Array
(
    [monday] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
            [5] => 6
            [6] => 7
            [7] => 0   **************
            [8] => 0   **************
            [9] => 8
            [10] => 9
            [11] => 10
            [12] => 11
            [13] => 12
            [14] => 13
            [15] => 14
            [16] => 15
            [17] => 1    **************
            [18] => 1    **************
            [19] => 16
            [20] => 17

我不明白为什么会出现这种情况 - 我做错了什么吗?

你是不是想使用八进制? - Jacob Relkin
2个回答

7
如果在八进制整数中给出无效的数字(即8或9),那么该数字的其余部分将被忽略。详情请参见此链接
<?php
var_dump(01090); // 010 octal = 8 decimal
?>

所以

008009不是有效的,应该为0

还要查看之前发布的八进制数字帖子(几分钟前)

与PHP算术相关


该死 - 这是一个很好的观察!所以我不能直接使用这些数字...! - Steve
你可以创建一个数组,其中的数字省略了前导零。 - Haim Evgi
是的 - 我确实这样做了... @jacob - 不,我不是有意为之,只是在复制其他地方的一些内容...(没有思考!) - Steve

0

在 PHP 中,整数变量采用八进制表示,这就是你面临这个问题的原因。

首先查看此链接,你就能理解了。

http://www.ascii.cl/conversion.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接