[英]Convert csv to keyed json
我有包含如下數據的 csv 文件,沒有列標題
100271311,90445XXXX,Active
100271400,99456XXXX,Cancelled
100271552,94280XXXX,Pending
我想將上述內容轉換為如下所示的 php json 輸出
{
"100271311": {
"FIELD2": "90445XXXX",
"FIELD3": "Active"
},
"100271400": {
"FIELD2": "99456XXXX",
"FIELD3": "Cancelled"
},
"100271552": {
"FIELD2": "94280XXXX",
"FIELD3": "Pending"
}
}
請幫忙
你可以試試這個:
$file = "csvfile.csv";
$csv = file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
$json = json_encode($array);
print_r($json);
注意: str_getcsv解析 CSV 格式字段的字符串輸入,並返回一個包含讀取字段的數組。
你可以試試:
$file = file('pathtoyour/file.csv');
$json = [];
foreach ($file as $key => $row) {
$cols = explode(',', $row);
$json[trim($cols[0])] = [
'FIELD2' => trim($cols[1]),
'FIELD3' => trim($cols[2]),
];
}
die(json_encode($json));
使用file
、 explode
和json_encode
函數的解決方案:
$lines = file("./data/test.csv"); // change with your actual file path
$result = [];
foreach ($lines as $line) {
list($k, $f2, $f3) = explode(',', $line);
$result[$k] = ['FIELD2' => $f2, 'FIELD3' => trim($f3)];
}
print_r(json_encode($result, JSON_PRETTY_PRINT));
輸出:
{
"100271311": {
"FIELD2": "90445XXXX",
"FIELD3": "Active"
},
"100271400": {
"FIELD2": "99456XXXX",
"FIELD3": "Cancelled"
},
"100271552": {
"FIELD2": "94280XXXX",
"FIELD3": "Pending"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.