我正在读一个.csv文件(我无法控制文件的格式),我正在尝试在结果数组中保留数据的前导零。例如,.csv文件在字段中具有“0615”,但结果数组包含“615”。 .csv文件中还有一些字段不包含前导零,因此在每个字段的开头添加零将不起作用。
我试图强制函数将字段作为字符串读取,但是爆炸,str_getcsv,fgetcsv都将其解析为整数并预先删除前导零。有什么想法吗?
编辑:问题已解决,最终成为.csv文件的问题。使用爆炸与fgets工作。
答案 0 :(得分:1)
explode()以字符串为基础;您的类型转换必须在其他地方进行:
$data = "00555,00666,00777,00888";
$a = explode(",",$data);
foreach($a as $b) echo $b . " "; // 00555 00666 00777 00888
如果PHP坚持将字符串解释为整数,则使用(string)$ b。
答案 1 :(得分:0)
使用str_pad
将前导零添加到已解析的整数中,无论您需要它。
如果您熟悉它,请使用sprintf
。
$num = 1;
$num = sprintf('%04d', $num);
// ^^
// ||_ How many leading digits?
// |_ Leading digit?
// output: 0001
答案 2 :(得分:0)
如果您需要前导零用于演示或统一格式化过程,那么在输出数字时简单地填充数字可能会更容易。