2017-03-21 22 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; 
}