PHP конвертировать CSV в сериализованный массив - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть CSV-файл с 2 столбцами, идентификатором и ключом.Выдержка ...

26,"test1
test2
test3
"
54,"test34
test52
test673
"
67,"test1
test2a
test333
"

Я пытаюсь загрузить этот файл в PHP и преобразовать второе поле (ключ) в сериализованный массив, у меня это пока ...

$filename = 'myfile.csv';

if (($h = fopen("{$filename}", "r")) !== FALSE) {

    while (($data = fgetcsv($h, 1000, ",")) !== FALSE) {

      var_dump($data[1]);

    }

    fclose($h);

}

Сейчас я пытаюсь перебрать строки в $ data [1], чтобы преобразовать их в массив, но когда я делаю var_dump, новые строки, похоже, исчезают.Правильно ли я подхожу к этому?

1 Ответ

0 голосов
/ 07 февраля 2019

Не уверен, что вы подразумевали под сериализованным массивом здесь, но я предполагаю, что вы хотите, чтобы ваш key был в одной строке, как показано ниже. ДАЙ МНЕ ЗНАЕТЕ, ЕСЛИ Я НЕПРАВИЛЬНО .Давайте попробуем так:

<?php
$fp = fopen('file.csv', 'r');
$csvArray = array();
while ($row = fgetcsv($fp)) {
    $csvArray[$row[0]] = preg_replace("/[\r\n]/"," ",$row[1]);
}

fclose($fp);
print_r($csvArray);
?>

Вывод:

Array
(
 [26] => test1 test2 test3 
 [54] => test34 test52 test673 
 [67] => test1 test2a test333 
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...