#php
#php
Вопрос:
Я использую функцию автозаполнения jQuery. Для работы мне нужен 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"]
Комментарии:
1. php.net/manual/en/function.str-getcsv.php#114764
2. Ваши результаты, похоже, предполагают, что
explode()
вызов не делает ничего полезного и может быть удален.
Ответ №1:
Вы создаете массив значений, а затем помещаете их в json_encode()
функцию.
$data = [];
$f = fopen($filename, "r");
while ($row = fgetcsv($f)) {
$out = $row[2];
$data = array_merge($data, explode(" , ",$out)));
}
echo json_encode($data);
Ответ №2:
Возможно, было бы проще прочитать файл в arary, сопоставить с функцией, которая запускается, затем закодировать и отобразить:
echo json_encode(
array_map(function($v) { return explode(" , ", $v)[2]; }, file($filename))
);