【发布时间】:2020-07-03 16:39:03
【问题描述】:
我在将 PHP 数组转换为 Json 时遇到了一些问题。有关更多上下文,这是代码:
`
$Users = array();
$file = fopen('usersFile.csv', 'r');
$row = fgets($file);
$ColumnKeys = explode(',', $row);
while (!feof($file)) {
$row = fgets($file);
$userData = explode(',', $row);
for ($i=0; $i<sizeof($columnkeys); $i++) {
$user[$columnKeys[$i]] = $userData[$i];
}
array_push($Users, $user);
}
fclose($file);
echo json_encode($Users);
?>`
包含用户数据的 csv 文件是这样的:
id,name,docNumber,dateBirth
1,马里奥马里奥,1694370,06/11/1953
2,保罗佩普,1725614,24/04/1964
输出如下所示:
[{"id":"1","name":"Mario Mario","docNumber":"1694370","dateBirth\r\n":"06\11\1953\r\n"}, {"id":"2","name":"Pau Pep","docNumber":"1725614","dateBirth\r\n":"24\04\1964\r\n"}]
我不知道为什么在输出中 $Users 数组在 dateBirth 中包含元字符及其值。快把我逼疯了。
【问题讨论】:
-
我建议只修剪键和值。这些是换行符。
-
尝试修剪最后 4 个字符。
-
另请查看
fgetcsv和array_combine。