0

これを尋ねるのはほとんど恥ずかしいですが、私はこのタスクを数時間達成しようとしています。fopenfgetcsvの 機能を完全に把握していないと、少し道に迷ってしまいます。私が見つけた各例は、私にとってはうまくいきません。

CSV ファイルの各行を 1 つの配列にロードする方法を探しています。たとえば、これが私の CSV ファイルの場合:

Apple,Banana,Orange
Kiwi,Watermelon,Pineapple
Dog,Cat,Bird

次に、これは私の配列になります:

Array
(
    [0] => Apple,Banana,Orange
    [1] => Kiwi,Watermelon,Pineapple
    [2] => Dog,Cat,Bird
)

ヒントをいただければ幸いです。ありがとう!:)


参考までに、これは私がこれまでに持っていたものです:

$list = '../reports/apples.csv';

$csvfile = fopen($list,'rb');
while(!feof($csvfile)) {
$listofthings[] = fgetcsv($csvfile);
}
fclose($csvfile);

print_r($listofthings);

ただし、これは次のように多次元配列を生成しています。これは、1 つの大きな配列だけを使用したい場合です。

Array
(
    [0] => Array
        (
            [0] => Apple
            [1] => Banana
            [2] => Orange
        )

    [1] => Array
        (
            [0] => Kiwi
            [1] => Watermelon
            [2] => Pineapple
        )

    [2] => Array
        (
            [0] => Dog
            [1] => Cat
            [2] => Bird
        )
)
4

3 に答える 3

2

ファイルを行ごとに分割する場合は、file.

$newArray = file('/path/to/file.csv');

コンマで区切られた各値を配列の要素として使用する場合はfile_get_contents、コンマで区切ります。

$contents = file_get_contents('/path/to/file.csv');
$newArray = explode(',', $contents); 
于 2013-02-23T04:29:53.593 に答える
1

Nicholasがexplode提案するようにファイルを読んだ後、または次のコマンドで一度にすべてをヒットすることができますfile

$lines = file('/path/to/file.csv');
于 2013-02-23T04:36:41.847 に答える
0

これを探していますか?

$mytext = "Apple,Banana,Orange
Kiwi,Watermelon,Pineapple
Dog,Cat,Bird";

$line_explode = explode("\n", $mytext);
$comma_explode = array();
foreach ($line_explode as $line) {
  $comma_explode[] = explode(",", $line);
}

print_r($comma_explode);

出力

Array
(
    [0] => Array
        (
            [0] => Apple
            [1] => Banana
            [2] => Orange
        )

    [1] => Array
        (
            [0] => Kiwi
            [1] => Watermelon
            [2] => Pineapple
        )

    [2] => Array
        (
            [0] => Dog
            [1] => Cat
            [2] => Bird
        )

)
于 2013-02-23T04:38:39.730 に答える