PHP csv字符串解析

时间:2016-09-19 13:21:38

标签: php string csv explode

我有一个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_getcsvexplode更容易?

结果

这是我的结果:

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

不像我预期的结果。

2 个答案:

答案 0 :(得分:2)

文档很清楚

  

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

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

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

答案 1 :(得分:1)

str_getcsv ”一次只解析一行:

您需要为每一行运行它:

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