将CSV行字符串转换为数组

时间:2014-06-13 23:56:30

标签: php csv

我正在使用返回CSV字符串的API,如下所示:

Date,Open,High,Low,Close,Volume,Adj Close 2014-06-13,3.10,3.30,3.10,3.30,6638300,3.30

我想知道是否有一种简单的方法可以将这个CSV字符串转换为关联数组?我熟悉使用CSV文件,但不知道如何处理CSV文件字符串响应。我试图避免将响应写入文件,只是这样我才能读回来。

注意,将此响应写入CSV文件将导致两行七列。

1 个答案:

答案 0 :(得分:0)

正如其他人所说,str_getcsv()是你的朋友,是将CSV字符串转换为数组的简单方法。此函数将返回一组结果。如果您想将其设为关联数组,请使用array_combine()

老实说,虽然 - str_getcsv()可能有点矫枉过正。请使用explode()

考虑此方法
// so given this string returned by the API
$api_s = "Date,Open,High,Low,Close,Volume,Adj Close\r\n2014-06-13,3.10,3.30,3.10,3.30,6638300,3.30";

// split on carriage return & line feed into two strings
$api_r = explode("\r\n", $api_s);

// split keys and values by comma
$keys = explode(',', $api_r[0]);
$vals = explode(',', $api_r[1]);

// construct associative array
$my_assoc_r = array_combine($keys, $vals);