从csv列表创建多维度数组

时间:2018-07-16 08:40:52

标签: php csv multidimensional-array

我认为这是初学者的问题。 我找不到这个例子,尽管这可能反映出我太天真了,不知道要寻找什么。

如果我有一个字符串(逗号可以是任何其他字符):

58732,hc_p0d
58737,hc_p4
58742,hc_p4a

(新行使用“ \ r \ n”)

如何将其拆分为多维数组(在这种情况下为2X3,但行数可以变化。)

我认为这是我想要的形式(但是如果不合适,请提出更好的方法!)

array(
    array(58732,hc_p0d),
    array(58737,hc_p4),
    array(58742,hc_p4a),
)

我最近得到的是使用$ vars = explode(“ \ r \ n”,$ input); var看起来像这样(在cakephp中):

(int) 0 => '58732,hc_p0d',
(int) 1 => '58737,hc_p4',
(int) 2 => '58742,hc_p4a',
(int) 3 => '58747,hc_p4b',

谢谢

1 个答案:

答案 0 :(得分:0)

如果要将CSV数据转换为数组格式,可以通过这种方式完成

$csv = array_map('str_getcsv', file('data.csv'));

查看此参考资料以获取进一步的解释 http://php.net/manual/en/function.str-getcsv.php

如果它不是来自文件而是包含CSV数据的字符串,则可以这样做

$data = $csv_data;
$csv_data_rows = explode('\r\n',$data);
$final_array = array();
foreach($csv_data_rows as $key => $value){
$final_array[$key] = explode(',',$value);
}

return $final_array;