$array = array(
array("Id" => 0001 , "Name" => "Punit"),
array("Id" => 0002 , "Name" => "Pratik"),
array("Id" => 0003 , "Name" => "Milan"),
array("Id" => 0004 , "Name" => "Pritesh"),
array("Id" => 0005 , "Name" => "Kunjan"),
array("Id" => 0006 , "Name" => "Hemant"),
array("Id" => 0007 , "Name" => "Ravi"),
array("Id" => 0008 , "Name" => "Mitesh"),
array("Id" => 0009 , "Name" => "Ankur")
);
$contents = "Id,Name\n";
foreach ($array as $id => $call) {
$contents.=str_replace(",", " ", $call['Id']) . ",";
$contents.=str_replace(",", " ", $call['Name']) . "\n";;
}
header('Content-type:application/csv');
//header to make force download the file
header('Content-Disposition: attachment;filename="ConferenceReport-NBCU' . date('d-m-Yh:i:s') . '.csv"');
print $contents;
以上是我生成CSV文件的代码,
正如您所看到的,在数组内的键Id
中给出了数字。
问题是,当我尝试在CSV文件中编写密钥$call['Id']
时,它就像这样
Id Name
1 Punit
2 Pratik
3 Milan
4 Pritesh
5 Kunjan
6 Hemant
7 Ravi
0001 , 0002
是来自数据库的数字
我想在写入CSV文件时保持原样。
我尝试(string)$call['Id']
,"".$call['Id'].""
但没有任何作用。
答案 0 :(得分:0)
以0开头的数字0001,0002 ...基本上是八进制数字在php中,八进制数字表示[0-7] +所以不能有任何有效数字,如0008 0009和编译器将抛出编译错误。如果您还想要尾随零,建议的解决方案是将这些数字存储为数据库中的字符串。