我正在使用返回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文件将导致两行七列。
答案 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);