• ベストアンサー

検索方法

PHPのfgetcsvの関数でCSV内のデータを表示させる事はできました。 検索機能をつけようと思ってるのですが mb_preg_matchを使用するコードを是非書いて頂きたいです。 よろしくおねがいします><

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

で、どういう検索なの? (1)キーワードを3つ渡して$data[1],$data[2],$data[3]のすべてに完全一致するもの? (2)キーワードを1つ渡して$data[1],$data[2],$data[3]のどれかに完全一致するもの? (3)キーワードを1つ渡して、$data[1],$data[2],$data[3]のどれかに部分一致するもの? 仕様がわからないのでなんとも言えません。 出力はヒットしたらprintすればよいのですね? う~んはっきりいえば前回の回答でほとんど回答がすんでるとは思いますが どこがわからないのでしょうか・・・ ちなみにfgetcsv()は序数は0~始まるので$data[0]からなのですが ほんとうに$data[1]~[3]のデータでよいのでしょうか???

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

csvから読み込んだデータをどのようにもっていて、 検索した結果をどう表現したいのか書かないと・・・ とりあえずはこんな感じ。 <? $array=Array( Array("aaa","bbb","ccc") ,Array("iii","jjj","kkk") ,Array("j123","j456","789j") ,Array("xxx","yyy","zzz") ); $keyword="j"; $count=0; foreach($array as $rownum => $row){ foreach($row as $colnum =>$val){ if(preg_match("/".preg_quote($keyword,"/i")."/",$val)) $res[]=(Array("col"=>$colnum,"row"=>$rownum,"text"=>$val)); } } print "<pre>"; print_r($res); print "</pre>"; ?>

noname#149235
質問者

補足

申し訳ないです {$data[1]} {$data[2]} {$data[3]}のデータを検索したいのです。 よろしくおねがいします。 <?php $csv = fopen ("system.csv", "r") or die(print "ファイルが見つかりませんでした。"); while ($data = fgetcsv ($csv, 1000,",")) { print<<<eof {$data[1]} {$data[2]} {$data[3]} eof; } fclose($csv); ?>

関連するQ&A