【问题标题】:PHP convert CSV to serialized arrayPHP将CSV转换为序列化数组
【发布时间】:2019-02-07 01:48:09
【问题描述】:

我有一个包含 2 列、id 和 key 的 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 时,新行似乎消失了。我以正确的方式接近这个吗?

【问题讨论】:

  • 这是什么a serialized array 一个很好的例子。 Am i approaching this the correct way - 不,因为您需要将其存储在某个地方。

标签: php arrays csv serialization


【解决方案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 
)

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多