将CSV文件转换为JSON [BUG]

时间:2018-02-21 11:39:39

标签: php json csv

我想用我的CSV文件创建一个JSON文件。

但是我的函数array_combine出错了。 我该怎么办呢?

以下是代码

function csvtojson($file,$delimiter)
{
    if (($handle = fopen($file, "r")) === false)
    {
            die("can't open the file.");
    }

    $csv_headers = fgetcsv($handle, 4000, $delimiter);
    $csv_json = array();

    while ($row = fgetcsv($handle, 4000, $delimiter))
    {
            $csv_json[] = array_combine($csv_headers, $row);
    }

    fclose($handle);
    return json_encode($csv_json);}

以下是错误

  

警告:array_combine():两个参数的编号应相等   /var/www/inae-obs/app/controllers/csvToJson.php中的元素在线   15

1 个答案:

答案 0 :(得分:0)

您可以使用自定义array_combine方法来解决此问题:

<?php 

function array_combine_custom($keys, $values){
    $combined = [];
    $keys_values = array_values($keys);
    $values_values = array_values($keys);
    foreach($keys_values as $index => $key){
        $combined[$key] = isset($values_values[$index]) ? $values_values[$index] : null;
    }
    return $combined;
}

如果按键和值按顺序,您可以忽略其余部分。