2008/10/03
csvを配列に格納する方法・二次元配列 [ csvを配列に格納して表示する ]
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列目ということ!
- 関連記事
-
- session_start(); とは!PHP [PHPセッションスタートとは?使い方]
- プログラムソースをブログに貼り付けるためのソースエスケープツール
- PHPエラー Warning: Cannot modify header information - headers already sent by 理由
- サブミット(submit)のボタンを画像にしたい [submitボタンを画像imageにする]
- PHPでPOSTされたか確認する方法はemptyを使う方が適切
- PHP エラー Warning: Division by zeroとは? [Warning: Division by zeroについて]
- PHP eregは完全一致ではない [PHP変数値の比較・一致について]
- Fatal error: Cannot redeclare phpでのエラー [phpエラーについて]
- $_SESSION['任意変数名'] とは!PHP [PHPセッションとは?使い方]
- POSTやGETなどの変数の存在確認をする isset()について
- PHPでjavascriptを出力しCSVを展開する際の注意 [javascript・CSVの改行の罠]
- PHP eregの落とし穴・エラー [eregについて・eregとは?]
- javascriptでPHPを動かす [拡張子を変えずPHPを動かす方法]
- ファイルがあるか無いかを判定するis_fileについて
- PHP breakでループ条件を抜ける複数ループ条件も抜けれる[PHP多重ループを抜ける方法]
コメント