从CSV读取数据到单个数组或单个json

时间:2019-03-25 12:31:17

标签: php

我正在使用jQuery自动完成功能。为了使其正常工作,我需要使用[[Alaska“,” Alabama“,” Arkansas“]格式的json。目前,我正在从CSV文件读取数据。这是我的代码。

$f = fopen($filename, "r");
    while ($row = fgetcsv($f)) {
            $out = $row[2];
            print_r (explode(" , ",$out));
        }

现在我得到的输出为

Array
(
    [0] => Alaska
)
Array
(
    [0] => Alabama
)
Array
(
    [0] => Arkansas
)

我的杰森(Json)

["Alaska"]["Romeo"]["Arkansas"]

如何将数组转换为简单的数组,如

Array
(
    [0] => Alaska
    [1] => Alabama
    [2] => Arkansas
)

如果不是这样的json

["Alaska","Alabama","Arkansas"]

2 个答案:

答案 0 :(得分:2)

您构建一个值数组,然后将其放入json_encode()函数中。

$data = [];
$f = fopen($filename, "r");
    while ($row = fgetcsv($f)) {
            $out = $row[2];
            $data = array_merge($data, explode(" , ",$out)));
        }

echo json_encode($data);

答案 1 :(得分:0)

可能更容易将文件读入Arary,映射到爆炸的函数,然后进行编码和显示:

echo json_encode(
    array_map(function($v) { return explode(" , ", $v)[2]; }, file($filename))
);