【发布时间】:2012-01-11 07:09:03
【问题描述】:
我有这样的 csv 值:
$csv_data = "test,this,thing
hi,there,this
is,cool,dude
have,fun";
我想获取一个完整的 CSV 字符串并将其读入一个多维数组,以便得到:
array(
array(
'test' => 'hi',
'this' => 'there',
'thing' => 'this'
),
array(
'test' => 'is',
'this' => 'cool',
'thing' => 'dude'
),
array(
'test' => 'have',
'this' => 'fun',
'thing' => ''
)
);
我想要这样的输出,请注意 CSV 值是动态的。
【问题讨论】:
-
CSV数据的最后一行是否应该有一个逗号?如果行的列数不同,则似乎不是有效的 CSV 数据。或者代码是否需要考虑不同数量的列?
-
类似,第一行是数组的键,然后是它的值。在 'thing' => '' 部分,这是正确的。
-
我明白了,但 CSV 数据的最后一行是
have,fun,它只有两列,而不是像其他行那样的三列。我们是否需要考虑列数错误的行? -
好的,我已经更新了我的答案以反映两种情况(相同或不同的列数)。
-
这是我见过的最奇怪的“关闭”实例之一。这是关于如何将 CSV 字符串解析为数组的一个非常普遍且有用的问题。我或多或少有同样的问题,这就是我来到这里的原因。