2014-03-25 70 views
0

我有一個csv文件,我想在特定的列中搜索一個值,如果發現相應的行應該設置在一個數組中。 我已經有工作了,但如果有多個行具有該值,我的代碼只有最後一個站在變量,因爲它覆蓋了以前的entrys。PHP fgetcsv while search,多行到數組

我怎樣才能讓它可以分離地回顯所有的行?也許在一個多維數組? 我是一個初學者,在PHP中,幫助很大。 謝謝

$search = $station; 
if (($handle = fopen("CSV-data/airport-frequencies.csv", "r")) !== FALSE) { 
    $row=0; 
    $csv_row = array(); 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    if ($data[2] == $search) { 
     $csv_row = $data; 
    } 
    } 
    fclose($handle); 
    echo $csv_row[3] . "<br />"; //type 
    echo $csv_row[4] . "<br />"; //description 
    echo $csv_row[5] . "<br />"; //frequency 
    echo "<hr /><br />"; 
} 

回答

2

你是對的,你需要一個數組的數組。所以像這樣的東西應該適合你:

$search = $station; 
if (($handle = fopen("CSV-data/airport-frequencies.csv", "r")) !== FALSE) { 
    $row=0; 
    $csv_row = array(); 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    if ($data[2] == $search) { 
     $csv_row[] = $data; 
    } 
    } 
    fclose($handle); 
    foreach ($csv_row as $row) { 
    echo $row[3] . "<br />"; //type 
    echo $row[4] . "<br />"; //description 
    echo $row[5] . "<br />"; //frequency 
    echo "<hr /><br />"; 
    } 
}