我正在使用 PHP 并将 JSON 数据转换为 CSV 格式,然后读取相同的 CSV 文件以进行进一步处理。
下面是我将 JSON 数据转换为 CSV 格式的代码。
function LoadDataFromFile($file)
{
$json = file_get_contents($file);
$array = json_decode($json, true);
$f = fopen('out.csv', 'w');
$firstLineKeys = false;
$keys = array();
//first collect keys
foreach($array as $line){
foreach($line as $key => $value){
if(!in_array($key, $keys))
$keys[] = $key;
}
}
$keyString = implode(",", $keys);
fwrite($f, "$keyString\n");
foreach ($array as $line)
{
$outputArray = array();
foreach($keys as $key){
if(array_key_exists($key, $line)){
$outputArray[] = str_replace(',', '', $line[$key]);;
} else {
$outputArray[] = "";
}
}
$outputString = implode(",", $outputArray);
fwrite($f, "$outputString\n");
}
fclose($f);
}
正如我们所看到的,我正在将数据写入“out.csv”文件,稍后我正在读取相同的 CSV 文件并将相同文件的值/全部内容逐行分配给 $array 变量,如下所示.
$array = explode("\n", file_get_contents('out.csv'));
现在,我想直接将 csv 内容的值分配给 $array 变量,而不使用中间的“out.csv”文件。
想知道在将 JSON 数据转换为 CSV 格式时应该使用什么数据结构,以及“LoadDataFromFile”方法所需的可能代码更改?
慕神8447489