私は2つの.csvファイルのデータを取得する作業システムを持っています。すべてのデータを配列に保存し、両方のcsvファイルに存在するデータの一部を比較します。システムはうまくいくが、後で私はいくつかの行が配列に表示されないことを知った。私はcsvファイルを読むのに適切なコードを使用しないと思う。私はシステムを編集/改善したい。これは、CSVファイルからデータを読み込んだり取得したりするコードです。適切に.csvファイルのデータをPHPで読み取る
$thedata = array();
$data = file("upload/payment.csv");
foreach ($data as $deposit){
$depositarray = explode(",", $deposit);
$depositlist = $depositarray;
$key = md5($depositlist[9] . $depositlist[10]);
$thedata[$key]['payment'] = array(
'name' => $depositlist[0],
'email' => $depositlist[1],
'modeofpayment' =>$depositlist[8],
'depositdate' => $depositlist[9],
'depositamount' => number_format($depositlist[10],2)
);
}
'<pre>',print_r($thedata),'</pre>';
//more code here for comaparing of datas...
1)csvファイルを読み込むときfile("upload/payment.csv")
と間違っていますか?
2.) システムに適用され、コード全体を変更することなく、csvファイルを読み込む際のベストコードは何ですか? foreachループのままにする必要があります。
3.)fgetcsv
は既存のコードよりもはるかに優れていますか?どのような変更を行う必要がありますか?
私はそのは上の障害の特定の線のような、問題にしている疑いがあるでしょう正しく終了していません。ファイルをテキストエディタで開きます。行を見つけて、奇妙なものがあるかどうかを確認してください。 –
@Dagon。私のCSVファイルのフィールドの一部が空であり、一部がカンマを持っています。 –
デリミネーターの中にカンマがある場合は、ネイティブcsv関数を使用していて自分自身をロールバックしないでください。 –