Php 如何将多行CSV解析为多维关联数组?
Php 如何将多行CSV解析为多维关联数组?,php,arrays,csv,Php,Arrays,Csv,$csv\u内容的内容是: 1415797658,456ABC,789,123,"bla" 1415797656,654XYZ,897,567,"foo" 1415797654,639HJW,465,146,"bar" str\u getcsv(文件获取内容($csv\u内容))结果: array 0 => string '1415797658' (length=10) 1 => string '456ABC' (length=6) 2 => string '78
$csv\u内容的内容是:
1415797658,456ABC,789,123,"bla"
1415797656,654XYZ,897,567,"foo"
1415797654,639HJW,465,146,"bar"
str\u getcsv(文件获取内容($csv\u内容))
结果:
array
0 => string '1415797658' (length=10)
1 => string '456ABC' (length=6)
2 => string '789' (length=3)
3 => string '123' (length=3)
4 => string 'bla' (length=3)
5 => string '1415797656' (length=10)
6 => string '654XYZ' (length=6)
7 => string '897' (length=3)
8 => string '567' (length=3)
9 => string 'foo' (length=3)
10 => string '1415797654' (length=10)
11 => string '639HJW' (length=6)
12 => string '465' (length=3)
13 => string '146' (length=3)
14 => string 'bar' (length=3)
预期结果:
array
0 =>
array
'timestamp' => string '1415797658' (length=10)
'id' => string '456ABC' (length=6)
'id2' => string '789' (length=3)
'id3' => string '123' (length=3)
'text' => string 'bla' (length=3)
1 =>
array
'timestamp' => string '1415797656' (length=10)
'id' => string '654XYZ' (length=6)
'id2' => string '897' (length=3)
'id3' => string '567' (length=3)
'text' => string 'foo' (length=3)
2 =>
array
'timestamp' => string '1415797654' (length=10)
'id' => string '639HJW' (length=6)
'id2' => string '465' (length=3)
'id2' => string '146' (length=3)
'text' => string 'bar' (length=3)
最简洁的方法是什么?PHP内置函数文档中的示例可能会给您一些想法,您的csv应该有标题。您可以预期头,然后首先解析它,并使用第一行作为assoc数组的键。然后解析每一行,并将新数组推入另一个数组,该数组包含key=>value association的行。@LauriOrgla:CSV按原样给出。如果CSV没有标题,则需要自己分配数组键,但使用fgetcsv()循环文件的原则仍然适用,如果你想变得更聪明,您使用的是INSTEAD。docs for PHP的内置函数中显示的示例可能会给您一些想法,即您的csv应该具有标题。您可以预期头,然后首先解析它,并使用第一行作为assoc数组的键。然后解析每一行,并将新数组推入另一个数组,该数组包含key=>value association的行。@LauriOrgla:CSV按原样给出。如果CSV没有标题,则需要自己分配数组键,但使用fgetcsv()循环文件的原则仍然适用,如果你想变得更聪明,您使用的是INSTEAD。docs for PHP的内置函数中显示的示例可能会给您一些想法,即您的csv应该具有标题。您可以预期头,然后首先解析它,并使用第一行作为assoc数组的键。然后解析每一行,并将新数组推入另一个数组,该数组包含key=>value association的行。@LauriOrgla:CSV按原样给出。如果CSV没有标题,则需要自己分配数组键,但使用fgetcsv()循环文件的原则仍然适用,如果你想变得更聪明,您使用的是INSTEAD。docs for PHP的内置函数中显示的示例可能会给您一些想法,即您的csv应该具有标题。您可以预期头,然后首先解析它,并使用第一行作为assoc数组的键。然后解析每一行,并将新数组推入另一个数组,该数组包含key=>value association的行。@LauriOrgla:CSV按原样给出。如果CSV没有标题,则需要自己分配数组键,但使用fgetcsv()循环文件的原则仍然适用,如果你想变得更聪明,你用一个字母代替
$array=array();
$handle=fopen($csv_content,'r');
while ($row=fgetcsv($handle)){
$array[]=array(
'timestamp' => $row[0],
'id' => $row[1],
'id2' => $row[2],
'id3' => $row[3],
'text' => $row[4]
);
}