使用PHP重新格式化JSON数组

使用PHP重新格式化JSON数组,php,jquery,json,csv,Php,Jquery,Json,Csv,我有一个小的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,

我有一个小的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);
?>
因此,它基本上合并了前两项并添加了
name
&
location

我的
food.csv
文件是:

McDonalds,Fast Food,London
Marios,Italian,Manchester

下次请自己尝试一下:

$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\u编码。

打开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);
    ?>


< /代码> 如果您考虑使用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);

只需编辑使用fgetcsv读取的原始数据。你应该知道如何操作数组以及如何连接字符串。稍加调整,这一切都非常有效。非常感谢!:-)
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);