- ベストアンサー
検索方法
PHPのfgetcsvの関数でCSV内のデータを表示させる事はできました。 検索機能をつけようと思ってるのですが mb_preg_matchを使用するコードを是非書いて頂きたいです。 よろしくおねがいします><
- みんなの回答 (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)
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>"; ?>
補足
申し訳ないです {$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); ?>