0

phpでCSVファイルを読み込もうとしています。私はいつも、データが特定の構造になっていることを知っている状況がありました。ただし、CSVがあり、各行に異なる数のアイテムが含まれている可能性があります。

これが小さな例です:

121, 32, 28, 23, 43   
322, 43, 43, 44  
435, 23, 43  
343, 56, 56, 678  


行1の最初の番号、行1の2番目の番号、行1の3番目の番号-改行1
行目の最初の番号、行1の2番目の番号、行の4番目の番号1-改行
1行目の最初の番号1行目の2番目の番号1行目の5番目の番号-改行

行2の最初の番号、行2の2番目の番号、行2の3番目の番号-改行
1行目の最初の番号、行1の2番目の番号、行2の4番目の番号-改行

等々........

これらのループをネストする方法を理解するのに苦労しています。

4

2 に答える 2

0

あなたが投稿したものに基づいて、私はこのモックアップを思いつきました。お役に立てば幸いです。

$csv = array(
    array(121, 32, 28, 23, 43),
    array(322, 43, 43, 44),
    array(435, 23, 43),
    array(343, 56, 56, 678)
);

foreach($csv as $row){
    foreach($row as $key=>$column){
        if($key<2){
            continue;
        }
        echo $row[0].', '.$row[1].', '.$column.'<br>';
    }

}
于 2012-11-16T04:43:14.210 に答える
0

何が問題なのかわかりません。

そのファイルを 2 次元配列に読み込むことができます。

$file = "file.csv";
$data_arr = array();

if (($handle = fopen($file, 'r')) !== FALSE)
{

    $rownum = 1; // change to 0 to start counting from 0

    while (($row = fgetcsv($handle, 0, ",")) !== FALSE)
    {

        $cellnum = 1; // change to 0 to start counting from 0

        foreach($row as $cell)
        {
            // optional charset conversion
            // $cell = iconv("windows-1250", "UTF-8", $cell);

            $data_arr[rownum][cellnum] = $cell;
            $cellnum++;
        }
        $rownum++;
    }
    fclose($handle); // close file

}
else
{
    echo "Error. Cant open ".$file;
}
于 2012-11-16T04:43:31.673 に答える