форматировать вывод JSON с заголовками excel (cv) - PullRequest
0 голосов
/ 24 апреля 2019

Приведенный ниже php берет мой CSV-файл и выводит его в JSON-файл.

<?php

    echo "<h2>Uploading....</h2>";

    $fh = fopen("assets/files/locationsCSV.csv", "r");

    $csvData = array();

    while (($row = fgetcsv($fh, 0, ",")) !== FALSE) {
        $csvData[] = $row;
    }
    // echo json_encode($csvData);
    file_put_contents("assets/files/locationsCSV.json",json_encode($csvData))      

?> 

JSON в моем JSON-файле выводит, как показано ниже: Текущий вывод:

["Zipcode","City","Primary State","SS","County"], # only prints once
["24553","","Virginia","49050","Appomattox"], # then just this 
["24553","","Virginia","49140","Buckingham"], # etc

Как я могу получить его для вывода, как это / переформатировать со столбцом почтового индекса в качестве заголовка объекта?

Желаемый вывод JSON:

{ 
 ZipCode: 24553, { 
 City: , 
 Primary State: Virginia, 
 SS: 49050,
 County: Appomattox
}

1 Ответ

1 голос
/ 24 апреля 2019

Вам нужно прочитать первую строку вашего CSV-файла в массив ключей и объединить эти ключи с каждой строкой данных в вашем цикле:

$csvData = array();
$keys = fgetcsv($fh, 0, ",");
while (($row = fgetcsv($fh, 0, ",")) !== FALSE) {
    $csvData[] = array_combine($keys, $row);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...