我有一个从另一个系统进来的数组,所以我不能简单地用值作为字符串加载数组。在数组中是全部为数字的ID。但是,某些ID具有前导零,并且前导零必须作为ID的一部分存在。 PHP正在将这些ID转换为十八进制。如何防止这种情况,以便我可以访问数组中的实际ID?
例如:
$ids=array(01234,1234);
$ids= array_map(function($var){ return (string) $var; }, $ids);
foreach ($ids as $id){
echo $id;
echo "<br />";
}
产地:
668个
1234
正如你所看到的那样,在尝试使用它之前,我已经尝试将数组中的每个元素转换为字符串,但它仍然以十八进制形式出现。
答案 0 :(得分:0)
正如@IlyaBursov所说,你松开了第一行的0
。您需要获取系统获取这些值的字符串版本。如果使用整数数据类型,则不能保持前导零。
将其作为字符串传递,它将保持领先0
。
以下是上述方法的功能示例Run it here
$ids=array('01234','1234');
$ids= array_map(function($var){ return (string) $var; }, $ids);
foreach ($ids as $id){
echo $id;
echo "<br />";
}
可生产,
01234<br />1234<br />
答案 1 :(得分:-1)
答案是在使用它之前修改字符串,在使用json_decode之前在字符串中的所有元素周围添加引号。
$ids=str_replace(["[",",","]"],['["','","','"]'],$ids);