[PHP] 配列内の大文字 小文字を区別しないで検索する方法 stripos()

配列に含まれる文字列を大文字・小文字の区別なしに検索してみます。
項目数が少なく、データベースを使うまでもないとき、この方法は便利です。

$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」のどちらかが含まれれば、結果に反映されます。



Author: webmaster