php - 以标题行为键的 CSV 到 Json

标签 php json

我想将 CSV 转换为 Json,使用标题行作为键,每一行作为对象。我该怎么做?

--------------------------------CSV------------ ----------------------

 InvKey,DocNum,CardCode
 11704,1611704,BENV1072
 11703,1611703,BENV1073

--------------------------------PHP------------ ------------------------

  if (($handle = fopen('upload/BEN-new.csv'. '', "r")) !== FALSE) {
       while (($row_array = fgetcsv($handle, 1024, ","))) {
            while ($val != '') {
                foreach ($row_array as $key => $val) {
                        $row_array[] = $val;
                        }
                }
            $complete[] = $row_array;   
            }
            fclose($handle);
        }
        echo json_encode($complete);

最佳答案

只需单独读取第一行并将其合并到每一行:

if (($handle = fopen('upload/BEN-new.csv', 'r')) === false) {
    die('Error opening file');
}

$headers = fgetcsv($handle, 1024, ',');
$complete = array();

while ($row = fgetcsv($handle, 1024, ',')) {
    $complete[] = array_combine($headers, $row);
}

fclose($handle);

echo json_encode($complete);

关于php - 以标题行为键的 CSV 到 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712840/

相关文章:

arrays - 使用 swift 在 JSON 数据中进行循环

php - imagecopyresampled 旋转图像后

javascript - 如何在 MySQL 数据库中保存 jquery keyup() 的每个输入值?

php - Doctrine :与属性或位置的多对多关系

java - 如何序列化来自同一对象中两个 url 的 json 数据?

json - 按字母顺序对 JSON 进行排序 - Flutter

php - 如果没有评论,则选择(获取)文章

php - 如何从特定类别的自定义查询中获取动态类别链接

javascript - 如何将mysql数据库返回的数据转换成json

javascript - 谷歌地图地理编码结果未定义