PHP csv 字符串解析

PHP csv string parsing

我有一个 PHP CSV 文件,如下所示:

'numberOfProducts'  'lastUpdated'
'28'    '2016-09-19 06:55'

我试过这样做:

print_r( str_getcsv( $csv, "\n", "\t" ) );
print_r( str_getcsv( $csv, "\t", "\n" ) );

简直一团糟。

预期结果

但我的预期结果应该是这样的:

'numberOfProducts' => '28'
'lastUpdated' => '2016-09-19 06:55'

str_getcsv or is it easier with explode可以吗?

结果

这是我的结果:

Array
(
    [0] => numberOfProducts
    [1] => lastUpdated
'28'
    [2] => 2016-09-19 06:55
)

不像我预期的结果。

文档写的很清楚

array str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]] )

您的分隔符既不是 \n,也不是 \r - 两者都代表换行符。您的分隔符看起来像制表符。所以试试

print_r( str_getcsv( $csv, "\t", "'"));

"str_getcsv" 一次只解析一行:

您需要 运行 每行:

$rows = explode("\n", $csv);
foreach($rows as $row){
    print_r( str_getcsv( $row, "\t", "'") );
}