アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのVLOOKUP関数みたいな関数をphpで作れますか?
一定の規則で保存されているテキストデータから値を取り出したいのですが・・・
例えば、

xxx,2003年度,第3回,大問4,7<br />
zzz,2005年度,第1回,大問2,3<br />
rrr,2004年度,第2回,大問1,12<br />
sss,2006年度,第3回,大問3,2<br />
ddd,2006年度,第3回,大問2,4<br />
yyy,2000年度,第2回,大問2,3<br />

上記のように保存されているテキストデータから、
xxxを目印に「2003年度,第3回,大問4,7」
という値を取り出せますか?

A 回答 (2件)

vlookupというからには先頭のキーになるものはユニークであるという


前提とします。
ファイルがtest.csvだとすると、こんな感じ。

<?
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$key=$data[0];
array_shift($data);
$datas[$key]=implode(",",$data);
}
fclose($handle);
print $datas["xxx"];
?>

この回答への補足

保存形式はcsvではなくて、txt形式なのですが、
その場合はどうすればいいのですか?
ちなみに、保存形式をcsvにかえて試したところ、
何も表示されませんでした・・・
宜しくお願いします。

補足日時:2008/02/25 22:17
    • good
    • 0

VLOOKUP関数が、微妙になじみがないけど・・・。


>指定した範囲の中から、検索条件に一致したデータを検索し、取り出してくれる関数です。

Foreachとか、Whileでループかけて、listで分けて、if文でechoすれば。
関数化するのなら、echoじゃなくて、配列に入れて、戻り値にすれば。
あ、関数の引数は、検索ワードにすれば、もっといいか。

・・・、すごい初歩の初歩だけど、あれ、なんかおかしいこと書いてるかな?
これが明らかに「そういう意味じゃなくて!」か、「分からない」場合は、ガンバレ!!って事で。
関数化した所で、配列の取り出し方とか、連想配列の取り出し方とか、わかるんかなー。w

ちなみに、CSVは中身はテキストだから、txtに変えても平気だよ。
あんまり意味ないけど。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!