2017-03-21 44 views
0

我有這樣的PHP fgetcsv() - 作出第二個關鍵

10000000;BBk Berlin 
10010010;Postbank Berlin 
10010111;SEB Berlin 
10010424;Aareal Bank 
....... 

,當我使用fgetscv()這樣的銀行號碼及銀行名稱列表.csv文件,第二個值:

$filename = bank.csv; 

if (file_exists($filename) && $file = fopen($filename, "r")) { 
    while(!feof($file)) { 
     print_r(fgetcsv($file)); 
    } 
} 

這將讓我有這樣的

Array 
(
    [0] => 10000000;BBk Berlin 
) 
Array 
(
    [0] => 10010010;Postbank Berlin 
) 
Array 
(
    [0] => 10010111;SEB Berlin 
) 
Array 
(
    [0] => 10010424;Aareal Bank 
) 

,我想什麼單鍵數組是這樣的:

Array 
(
    [0] => 10000000 [1] => BBk Berlin 
) 

這樣銀行名稱是一個單獨的數組中的鍵。我怎樣才能做到這一點?也許fgetcsv()對我來說不是正確的功能?

回答

1

fgetcsv第三個參數是分隔符,所以你必須將其相應的

fgetcsv($file, 0, ';') 
+0

謝謝你們兩個,這兩個答案都是正確的!但你是第一個回答,所以我會接受。 – lewis4u

+0

甚至更​​好的解決辦法是取代所有;與,在該CSV文件,所以我不必擔心分隔符?你怎麼看?在一天結束時,文件被稱爲「逗號分隔值」,而不是「分號分隔值」:) – lewis4u

+0

它真的取決於你..我發現了現實生活中的兩種用法..如果你可以將它改爲逗號,那麼去做就對了 –

1

你的問題是,fgetcsv默認使用,逗號作爲分隔符。您需要將其更改爲;分號。然後,你將不必再爆炸:)

function process_csv($file) { 

    $file = fopen($file, "r"); 
    $data = array(); 

    while (!feof($file)) { 
     $data[] = fgetcsv($file,null,';'); 
    } 

    fclose($file); 
    return $data; 
}