0

我在将字符串转换为 int 时遇到问题。数组 $input 包含以下值:

array(3) { [0]=> string(6) "30" [1]=> string(2) "01" [2]=> string(9) "2013" } 

首先,由于八角陷阱,我删除了前导零。所以这是我的代码:

foreach ($input as $key => $var) {
        $input[$key] = trim($var,"0");
        $input[$key] = (int)$var;
    }

但不幸的是,结果并不令人满意。

array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2013) }

30现在是零?这怎么可能?

4

1 回答 1

2
[0]=> string(6) "30"

该字符串的开头有一些不可打印的字符。它看起来像 2 个字符长,但实际上有 6 个字符。此类字符将导致字符串转换0为文档中的内容。

您应该尝试bin2hex在字符串上查看我们正在谈论的字节值,然后使用这些知识来确定它们来自哪里。

"2013"字符串有额外的字符,尽管在这种情况下它们看起来是尾随的。

于 2013-01-31T16:09:25.840 回答