使用PHP将CSV转换为JSON?

我需要在服务器上使用PHP将CSV文件转换为JSON。我正在使用以下脚本:

函数csvToJSON($csv){
$rows=分解(“\n”,$csv);
$i=0;
$len=计数($rows);
$json=“{\n”“”数据“:[”;
foreach($行作为$行){
$cols=分解(“,”,$row);
$json.=“\n{\n”;
$json.='“var0”:“'.$cols[0]。\”,\n”;
$json.='“var1”:“'.$cols[1]。\”,\n”;
$json.='“var2”:“'.$cols[2]。\”,\n”;
$json.=''var3:'.$cols[3]。“\”,\n;
$json.='“var4”:“.$cols[4]。\”,\n”;
$json.=''var5:'.$cols[5]。“\”,\n;
$json.='“var6”:“'.$cols[6]。\”,\n”;
$json.='“var7”:“'.$cols[7]。\”,\n”;
$json.=''var8:'.$cols[8]。“\”,\n;
$json.='“var9”:“'.$cols[9]。\”,\n”;
$json.=''var10:'.$cols[10].';
$json.=“\n}”;
如果($i!=$len-1){
$json.=',';
}
$i++;
}
$json.=“\n]\n}”;
返回$json;
}
$json=csvToJSON($csv);
$json=preg_replace('/[\n]/',''$json);
标题(“内容类型:文本/普通”);
标头(“缓存控制:无缓存”);
echo$json;

$csv变量是由返回csv内容的cURL请求生成的字符串

我确信这并不是最有效的PHP代码,因为我是一个初学者,对PHP的了解也不多是否有更好、更有效的方法使用PHP将CSV转换为JSON?

提前谢谢

注意。我知道我在添加空格,然后删除它,这样我就可以选择通过删除行$JSON=preg_replace('/[\n]/','$JSON)返回“可读”JSON用于测试目的

编辑。感谢您的回复,基于这些回复,新代码如下:

函数csvToJson($csv){
$rows=分解(“\n”,修剪($csv));
$csvarr=数组映射(函数($row){
$keys=array('var0'、'var1'、'var2'、'var3'、'var4'、'var5'、'var6'、'var7'、'var8'、'var9'、'var10');
返回数组_combine($keys,str_getcsv($row));
}美元行);
$json=json_encode($csvarr);
返回$json;
}
$json=csvToJson($csv);
标题('Content-Type:application/json');
标头(“缓存控制:无缓存”);
echo$json;

还有一个json_encode()函数,您应该使用它,而不是自己构建json输出。还有一个函数str_getcsv()用于解析CSV:

$array=array\u map(“str\u getcsv”,explode(“\n”,$csv));
打印json_encode($array);

但是,如果希望JSON输出包含命名字段,则必须调整$array

发表评论