PHP将CSV转换为序列化数组

时间:2019-02-07 01:48:09

标签: php arrays csv serialization

我有一个包含2列ID和密钥的CSV文件。摘录是...

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 :(得分:1)

不确定此处的序列化数组是什么意思,但是我认为您想将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 
)