csvを配列に格納する方法・二次元配列 [ csvを配列に格納して表示する ]

Posted by boukyaku on 03.2008 プログラムの知識   0 comments
  • このエントリーをはてなブックマークに追加
    csvを配列に格納する方法・二次元配列 [ csvを配列に格納して表示する ]

    データを開いて中の情報を取り出したい事は日常茶飯事。
    先日、その方法を検索していたが、
    まぁ~格納した後に表示させるまでしか書いていない。

    私は、格納した後にピンポイントで取り出したいというのに!
    初心者にわかりにくい!

    ということで、初心者な私が初心者に教える、csvを配列に格納する方法!
    [スポンサードリンク]


    ---

    まず、

    csvは二次元配列

    いうものです。
    これは、csvでデータを作る際、タイトル行のようなものがあって
    その下にデータが埋め込まれていることが多いですね。

    要は、縦列と横列で構成されたデータのことを二次元配列と言います。


    例えば・・・

    NO , 企業名 , 担当者名 , 商品名 , アドレス ,
    1 , 忘却株式会社 , 田中 , ボールペン , test@test.jp ,
    2 , 忘却株式会社2 , 田中2 , ボールペン2 , test@test.jp2 ,
    3 , 忘却株式会社3 , 田中3 , ボールペン3 , test@test.jp3 ,
    4 , 忘却株式会社4 , 田中4 , ボールペン4 , test@test.jp4 ,

    こんなcsvファイルがあったとします。
    これを配列に格納したい!

    そして、3行目の商品[タイトル要素]を表示させたい!
    そんな時の方法!

    ---

    ソースです。解説付きは、下の方へ~

    <?php
    $list = fopen('ファイル名','r');
    $h = 0; 

    while ($array = fgetcsv($list, 1000,",")) { 
    for ($i = 0; $i < count($array); $i++){ 
    $newarray[$h][$i] = $array[$i];
    }
    $h++; 
    }

    ?>

    ---

    ~解説付きソース~

    <?php
    //まずは、fopenでファイルを展開して、変数に入れちゃいます。
    $list = fopen('ファイル名','r'); //読み込みだけだから r で対応。

    //ファイルのデータを配列に入れるループをする

    $h = 0; //配列の行の初期値の指定

    while ($array = fgetcsv($list, 1000,",")) { 
    //一行ずつ$arrayに格納します。while関数で行数分繰り返す
    //fgetcsvでcsvファイルを1000バイトまでカンマで区切って変数$arrayに入れてみる
    //この$arrayは、行指定がないのでカンマで区切った一列の状態

    for ($i = 0; $i < count($array); $i++){ 
    //$iは、列番号の指定 $iがcount($array)より小さければ繰り返して$iに1プラスする
    //count($array)では、行数を求めています。今回サンプルは4行となる

    $newarray[$h][$i] = $array[$i];
    //変数$arrayの[$i]列目の要素を$newarrayに格納
    //[$h]は行数の指定です。
    //この式では、$array[$i]の要素を $newarrayの[$i]列の[$h]行に格納
    //これをループしているのでcount($array)分繰り返され余すことなく全配列が格納される

    }
    $h++; //forが完了したら行をあらわす[$h]に1をプラスして始めに戻り繰り返す
    }

    ?>

    ---

    これで、$newarrayに全て配列データが格納されました!

    $newarray[0][0] や $newarray[1][0]  などで指定した値が取り出せます♪

    3行目の商品[タイトル要素]を表示させる場合は、
    $newarray[3][4] と指定。3行目の4列目ということ!
    関連記事


    • password
    • 管理者にだけ表示を許可する

    スポンサードリンク

    リンク