【发布时间】:2015-02-20 14:33:49
【问题描述】:
我正在尝试获取 for 循环的结果,例如:00001, 00002, 00003, 等,但结果未显示 0's: 而我得到:1, 2, 3, 等。
这是代码:
$min = 00001;
$max = 00005;
for ($x = $min; $x <= $max; $x++) {
echo "$x ";
}
【问题讨论】:
-
你需要使用
str_pad -
不只是消除前导零;任何以零开头的整数都被解释为八进制数。这意味着 0010 不代表十进制数 10,而是十进制数 8!除非您使用八进制数,否则不要在 PHP 整数前面加上 0。
-
实际上我将使用更高的值,例如 $max = 0387648
-
“实际上我将使用更高的值,例如
$max = 0387648” - 为什么前导零?同样,正如 Erik 所述和 Rizier 在下面的回答;前导零被视为八进制。你试过里齐尔的答案吗? @narclax -
你知道你可以在 MySQL 中实现这一点,将前导零作为列的前导字符。有几种方法可以做到这一点,在 PHP 中也是如此。我以前见过;这有点复杂,但这可能是您需要做的。使用八进制可能不会产生预期的结果。你 100% 确定要使用八进制吗? @narclax