我有一个小的PHP脚本,它拉入一个CSV文件并从中创建一个JSON数组。
然而,我想改变我输出的JSON数组的格式。
PHP:<?php
$file = fopen('food.csv', 'r');
$allfile = [];
$idsColumnsWanted = array_flip([0, 1, 2]);
while (false !== $fields = fgetcsv($file)) {
$allfile[] = array_intersect_key($fields, $idsColumnsWanted);
}
fclose($file);
?>
输出:var data = [["McDonalds","Fast Food","London"],["Marios","Italian","Manchester"]];
,
如何将CSV转换为以下格式:
var data = [
{name:"McDonald's Fast Food",location:"London"},
{name:"Marios Italian",location:"Manchester"}
];
它合并了前两项然后加上name
&location
.
,
我的food.csv
文件是:
McDonalds,Fast Food,London
Marios,Italian,Manchester
下次请自己尝试:
$data = [["McDonalds", "Fast Food", "London"], ["Marios", "Italian", "Manchester"]];
$newData = [];
foreach ($data as $info) {
$newData[] = [
'name' => $info[0] . " " . $info[1],
'location' => $info[2]
];
}
var_dump(json_encode($newData));
string '[{"name":"McDonalds Fast Food","location":"London"},{"name":"Marios Italian","location":"Manchester"}]' (length=104)
您需要创建一个所需格式的新数组,并简单地json_encode
它。
如果你考虑使用jQuery -这就是
var data = [["McDonalds","Fast Food","London"],["Marios","Italian","Manchester"]];
var formated_data = {};
$.each(data, function(key, val) {
formated_data[key] = {name: val[0] + ' ' + val[1], location: val[2]}
});
console.log(formated_data);
打开CSV文件,然后将CSV解析为数组。顺行
<?php
$file="1_23.csv";
$csv= file_get_contents($file);
$array = array_map("str_getcsv", explode("'n", $csv));
$json = json_encode($array);
print_r($json);
?>