2015-08-27 28 views
0

比如我想做一些像PHP:如何根據指定的列獲取csv的值?

PHP sample.php [CSV文件] [列名]

應該顯示基於指定的列名的所有數據。我下面只是代碼獲取第一列,但我想它是基於對列名的

當前代碼

function getCSV($csv){ 
    $file = fopen($csv, 'r'); 
    while (!feof($file)) { 
     $lines[] = fgetcsv($file, 1024); 
    } 
    fclose($file); 
    return $lines; 
} 

$csv = getCSV($argv[1]); 
foreach ($csv as $values) { 
    $row1[] = $values[0]; 
} 
print_r($row1); 

示例CSV

ID,Name 
1,Amy 
2,Ana 
3,Ava 

預期輸出

php sample.php sample.csv ID 
1 
2 
3 

php sample.php sample.csv Name 
Amy 
Ana 
Ava 
變量

我該怎麼做?

+0

採取每個CSV行和爆炸 –

+0

'explode'如果你依靠一貫的分隔符可以是棘手的,它會失敗嵌入在值分隔符。 –

+0

嘗試''print_r($ csv);'''getCSV()'函數設置'$ csv'後。看看在這一點上它看起來像什麼,這可能會幫助你循環。 –

回答

0

感謝您的幫助,最終得到了它。

function getColumn($csv, $column){ 
    $header = array_shift($csv); 
    $col = array_search($column, $header); 
    foreach ($csv as $row) {  
     $array[] = $row[$col]; 
    } 
    return $array; 
} 
相關問題