配列に含まれる文字列を大文字・小文字の区別なしに検索してみます。
項目数が少なく、データベースを使うまでもないとき、この方法は便利です。
$arr = array('ActionScript', 'MySQL', 'Java', 'JavaScript', 'jQuery', 'HTML', 'Ruby', 'C', 'Shell', 'Python', 'Perl', 'PHP', 'Scala', 'Fortran'); $words=array(); $keyword = 'a'; foreach ($arr as $w) { if (stripos($w, $keyword) !== FALSE) { $words[] = $w; } } var_dump($words);
1行目:文字列を配列形式で指定
4行目:検索キーワードを指定(FormからPostされた値など)
5行目〜9行目:配列をループ
6行目:ひとつずつ取り出した文字列に $keyword に指定した文字があるかチェック。!==FALSE は検索にマッチしたことを意味します。(検索結果がFalseでなかった場合)
検索に該当した場合 $words に該当した文字列を1つずつ入れて配列を作る。
出力結果
Array array(5) { [0]=> string(12) "ActionScript" [1]=> string(4) "Java" [2]=> string(10) "JavaScript" [3]=> string(5) "Scala" [4]=> string(7) "Fortran" }
大文字、小文字を区別しないで検索しているので「a」「A」のどちらかが含まれれば、結果に反映されます。