代码之家  ›  专栏  ›  技术社区  ›  michaelmcgurk

使用PHP重新格式化JSON数组

  •  -3
  • michaelmcgurk  · 技术社区  · 10 年前

    我有一个小的PHP脚本,它拉入一个CSV文件并从中创建一个JSON数组。

    然而 ,我想更改输出JSON数组的格式。

    PHP:

    <?php
    $file = fopen('food.csv', 'r');
    $allfile = [];
    $idsColumnsWanted = array_flip([0, 1, 2]);
    while (false !== $fields = fgetcsv($file)) {
        $allfile[] = array_intersect_key($fields, $idsColumnsWanted);
    }
    fclose($file);
    ?>
    

    输出: var data = [["McDonalds","Fast Food","London"],["Marios","Italian","Manchester"]];

    如何将CSV转换为以下内容:

    var data = [
    {name:"McDonald's Fast Food",location:"London"},
    {name:"Marios Italian",location:"Manchester"}
    ];
    

    因此,它基本上合并了前两项并添加 name location .

    我的 food.csv 文件为:

    McDonalds,Fast Food,London
    Marios,Italian,Manchester
    
    3 回复  |  直到 10 年前
        1
  •  0
  •   michaelmcgurk    10 年前

    下次请自己尝试一下:

    $data = [["McDonalds", "Fast Food", "London"], ["Marios", "Italian", "Manchester"]];
    $newData = [];
    foreach ($data as $info) {
        $newData[] = [
            'name' => $info[0] . " " . $info[1],
            'location' => $info[2]
        ];
    }
    var_dump(json_encode($newData));
    

    输出

    string '[{"name":"McDonalds Fast Food","location":"London"},{"name":"Marios Italian","location":"Manchester"}]' (length=104)
    

    您需要以所需的格式创建一个新数组,并且简单 json_encode 它

        2
  •  0
  •   kiril iliev    10 年前

    如果您考虑使用jQuery,它就在这里

    var data = [["McDonalds","Fast Food","London"],["Marios","Italian","Manchester"]];
    
    var formated_data = {};
    
    $.each(data, function(key, val) {
        formated_data[key] = {name: val[0] + ' ' + val[1], location: val[2]}
    });
    
    console.log(formated_data);
    
        3
  •  -1
  •   D.bentounsi    10 年前

    打开CSV文件,然后将CSV解析为数组。 流过这条线,

        <?php 
         $file="1_23.csv";
         $csv= file_get_contents($file);
         $array = array_map("str_getcsv", explode("\n", $csv));
         $json = json_encode($array);
         print_r($json);
        ?>
    
    推荐文章