我如何解析csv文件以先获取列名,然后获取与其相关的行?

这是我的CSV

column1,column2,column3,column4,column5

column1_row1,column2_row1,column3_row1,column4_row1,column5_row1

column1_row2,column2_row2,column3_row2,column4_row2,column5_row2

column1_row3,column2_row3,column3_row3,column4_row3,column5_row3

column1_row4,column2_row4,column3_row4,column4_row4,column5_row4

column1_row5,column2_row5,column3_row5,column4_row5,column5_row5

column1_row6,column2_row6,column3_row6,column4_row6,column5_row6

column1_row7,column2_row7,column3_row7,column4_row7,column5_row7

column1_row8,column2_row8,column3_row8,column4_row8,column5_row8

column1_row9,column2_row9,column3_row9,column4_row9,column5_row9

第一行是列的名称。我试过fgetcsv(),但所有要做的就是显示所有行。而不是我想要的。我该怎么做?

因此,如果我将数据最后放入数组中,我将能够打印出表格格式的数据,就像excel中所示。

谢谢

这是我的样本:

$filename = "upload/sample.csv";

if (($handle = fopen($filename, 'r')) !== FALSE)

{

while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)

{

print_r($row);

}

}

这是我的输出:(我将$ row放到pre中,以便可以显示它)

Array

(

[0] => column1

[1] => column2

[2] => column3

[3] => column4

[4] => column5

column1_row1

[5] => column2_row1

[6] => column3_row1

[7] => column4_row1

[8] => column5_row1

column1_row2

[9] => column2_row2

[10] => column3_row2

[11] => column4_row2

[12] => column5_row2

column1_row3

[13] => column2_row3

[14] => column3_row3

[15] => column4_row3

[16] => column5_row3

column1_row4

[17] => column2_row4

[18] => column3_row4

[19] => column4_row4

[20] => column5_row4

column1_row5

[21] => column2_row5

[22] => column3_row5

[23] => column4_row5

[24] => column5_row5

column1_row6

[25] => column2_row6

[26] => column3_row6

[27] => column4_row6

[28] => column5_row6

column1_row7

[29] => column2_row7

[30] => column3_row7

[31] => column4_row7

[32] => column5_row7

column1_row8

[33] => column2_row8

[34] => column3_row8

[35] => column4_row8

[36] => column5_row8

column1_row9

[37] => column2_row9

[38] => column3_row9

[39] => column4_row9

[40] => column5_row9

)

回答:

要一次阅读所有内容,可以使用:

$csv = array_map("str_getcsv", file("file1.csv",FILE_SKIP_EMPTY_LINES));

$keys = array_shift($csv);

要将所有行变成一个很好的关联数组,可以应用:

foreach ($csv as $i=>$row) {

$csv[$i] = array_combine($keys, $row);

}

以上是 我如何解析csv文件以先获取列名,然后获取与其相关的行? 的全部内容, 来源链接: utcz.com/qa/422561.html

回到顶部