2016-07-24 9 views
0

私は実際にcsvファイルから特定の列のデータを配列に変換する方法を考えるのに苦労しています。現時点では私が使用して配列に全体を変換することができます:PHP - 配列からcsvファイルの特定の列を取得する

$csv = array(); 

$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES); 

foreach ($lines as $key => $value) 
{ 
    $csv[$key] = str_getcsv($value); 
} 

しかし、唯一の配列から特定の列を取得する方法はありますか?列1と2、または1から4など?

これはFPDFを使用して特定のデータをテーブルに入れることを目的としています。私はまた苦労しています:/

- 誰も素早く見栄えの良いテーブルをFPDFに入れる方法を知っていれば教えてください。私はサイトからBasicTable関数を使用しようとしていますが、私のテーブルはページ外に出てしまい、うまく見えません。私が初めてそれを使用した時、それはかなりひどくなっています。

これは2種類の質問です。しかし、タイトルの最初のものが最初から始まる主要なものです。 ありがとう

答えて

1

str_getcsv()は単一の行を解析し、その行からデータを抽出するだけです。あなたが返信マイケルのためにarray($row[0], $row[1], ..., $row[n]);

1

各行でexplode()を使用して配列内の列を取得できます。それで$ csvに書き込むときは、あなたが望むものを選んで、あなたがしないものをスキップしてください。

for{ 
    $row = explode(",", $line); 
    $csv[$key]['wantedcol1'] = $row[0]; //first col 
    $csv[$key]['wantedcol2'] = $row[2]; //third col 
} 

これは、$のcsvを書いていて、ファイルから2番目の列をスキップしているだけのシンプルで小さな例です。

+0

おかげでする列番号を指定

$csv = array(); $lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES); foreach ($lines as $key => $value) { $row = str_getcsv($value); $csv[$key] = array($row[0], $row[1], ..., $row[n]); } 

。申し訳ありませんが、あなたが全然何を意味するのか分かりません。例がありますか?あるいは、私に例を示すことができますか? ありがとう –

+0

explode()のためにドキュメントを掘り下げてください...あなたはそれをたくさん使うでしょう。それはかなりシンプルです。区切り文字と文字列を要求します。あなたの場合は、各行/行を入れ、区切り記号としてカンマを使います。その文字列を配列に変換します。 print_r()を使用して、explode()が出力しているものを確認してください。その配列から必要な列を選択することができます。あなたの手を汚してください、あなたは大丈夫でしょう。 – MichaelClark

+0

私はこれまでに何度も爆発しましたが、このような状況ではありません。たぶん私は少し混乱している?私は配列を作ることができます、私はちょうどその配列から列を選ぶ方法を知りたいです。 それは私のテーブルジェネレータで動作するためには、それらの特定のカラムだけで、他のものは必要ありません。私はちょうど完全な配列から特定の列を印刷することができます知っている、あなたの言っていることは何ですか? 多次元であり、すべてのインデックスを使用します。私は意味があると思う?私はあなたの提案のアルゴリズムを考えるのが難しいと思う?ありがとう、 –

関連する問題