使用 PHP 将 CSV 转换为 JSON

2022-08-30 12:30:45

我正在尝试使用PHP将CSV文件转换为JSON。

这是我的代码

<?php 

date_default_timezone_set('UTC');
$today = date("n_j"); // Today is 1/23/2015 -> $today = 1_23

$file_name = $today.'.CSV'; // My file name is 1_23.csv
$file_path = 'C:\\Users\\bheng\\Desktop\\qb\\'.$file_name;
$file_handle = fopen($file_path, "r");

$result = array();

if ($file_handle !== FALSE) {

    $column_headers = fgetcsv($file_handle); 
    foreach($column_headers as $header) {
            $result[$header] = array();

    }
    while (($data = fgetcsv($file_handle)) !== FALSE) {
        $i = 0;
        foreach($result as &$column) {
                $column[] = $data[$i++];
        }
    }
    fclose($file_handle);
}

// print_r($result); // I see all data(s) except the header

$json = json_encode($result);
echo $json;

?>

print_r($result);我看到了所有数据

然后我试图显示它,但屏幕上根本没有显示任何内容。我看到的只是空白屏幕和0错误消息。json_encode($result);

我做错了什么吗?有人可以帮助我吗?

添加的结果print_r($result);

Array (
    [Inventory] => Array (
        [0] => bs-0468R(20ug)
        [1] => bs-1338R(1ml)
        [2] => bs-1557G(no bsa)
        [3] => bs-3295R(no BSA)
        [4] => bs-0730R-Cy5"
        [5] => bs-3889R-PE-Cy7"
        [6] => 11033R
        [7] => 1554R-A647
        [8] => 4667
        [9] => ABIN731018
        [10] => Anti-DBNL protein 

        .... more .... 

答案 1

试试这个:

$file="1_23.csv";
$csv= file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
$json = json_encode($array);
print_r($json);

答案 2

数据.csv

游戏,技能
寻宝者,皮利帕拉
火箭发射器,比博比博
火箭发动机,嘿嘿嘿嘿

要使用列名进行转换,这就是我的方法。

csv2json.php

<?php
if (($handle = fopen("data.csv", "r")) !== FALSE) {
    $csvs = [];
    while(! feof($handle)) {
       $csvs[] = fgetcsv($handle);
    }
    $datas = [];
    $column_names = [];
    foreach ($csvs[0] as $single_csv) {
        $column_names[] = $single_csv;
    }
    foreach ($csvs as $key => $csv) {
        if ($key === 0) {
            continue;
        }
        foreach ($column_names as $column_key => $column_name) {
            $datas[$key-1][$column_name] = $csv[$column_key];
        }
    }
    $json = json_encode($datas);
    fclose($handle);
    print_r($json);
}

输出结果

[
    {
        "Game": "Treasure Hunter",
        "Skill": "pilipala"
    },
    {
        "Game": "Rocket Launcher",
        "Skill": "bibobibo"
    },
    {
        "Game": "Rocket Engine",
        "Skill": "hehehohoho"
    }
]

推荐