2010-10-14 146 views
3

我有一個csv文件,我想使用php。 csv中的第一件事是列名。一切都以逗號分隔。解析csv文件php

我希望能夠將列名稱作爲數組名稱,並且該列的所有值將位於該數組名稱下。所以如果column1下有20行,那麼我可以做column1 [0],第一個實例(不是列名)將顯示在column1上。

我該怎麼做?

回答

9

你想要fgetcsv它會將每個行的作爲一個數組。由於您希望將每列放入其自己的數組中,因此可以從該數組中提取元素並將其添加到表示列的新數組中。喜歡的東西:

$col1 = array(); 
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $col1[] = $row[0]; 
} 

或者,你可以閱讀使用fgetcsv爲二維矩陣整個CSV文件(提供的CSV文件不會太大)爲:

$matrix = array(); 
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $matrix[] = $row; 
} 

然後解列你想成爲自己的陣列爲:

$col1 = array(); 
for($i=0;$i<count($matrix);$i++) { 
    $col1[] = $matrix[0][i]; 
} 
+0

我試過fgetcsv,但它沒有把它放到列名稱數組中。 – keith 2010-10-14 04:22:34

+0

我已添加更多詳情。 – codaddict 2010-10-14 04:24:08

+0

感謝您的回覆。這並不是我所希望的。有沒有辦法讓它知道csv中的第一行是列名,並且之後的每行都是行?而逗號分隔每一列的每一列? – keith 2010-10-14 04:53:38