php では、配列に特定の文字列が含まれているかどうかを判断する必要があることがよくあります。この記事では、PHP が配列内に特定の文字列が存在するかどうかをどのように判断するか、また配列内の要素を検索してフィルタリングする方法について説明します。
方法 1: in_array() 関数を使用する
php には、指定された要素が配列に含まれているかどうかを簡単に確認できる in_array() 関数が用意されています。この関数の構文は次のとおりです。
in_array($search, $array);
$search パラメータは検索する要素、$array パラメータは検索する配列です。 $search 要素が $array に含まれている場合は true、それ以外の場合は false を返します。サンプル コードは次のとおりです。
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search1 = 'banana'; $search2 = 'grape'; if (in_array($search1, $fruits)) { echo "Fruits array contains $search1"; } else { echo "Fruits array does not contain $search1"; } if (in_array($search2, $fruits)) { echo "Fruits array contains $search2"; } else { echo "Fruits array does not contain $search2"; }
上記のコードを実行すると、結果は次のようになります。
Fruits array contains banana Fruits array does not contain grape
方法 2: array_search() 関数を使用する
php には、 array_search() 関数、この関数は配列内で最初に出現する要素を検索します。この関数の構文は次のとおりです。
array_search($search, $array);
$search パラメータは検索する要素、$array パラメータは検索する配列です。検索要素が配列に含まれている場合は、配列内で最初に出現する要素のキー名を返し、それ以外の場合は false を返します。サンプル コードは次のとおりです。
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search1 = 'banana'; $search2 = 'grape'; $result1 = array_search($search1, $fruits); $result2 = array_search($search2, $fruits); if ($result1 !== false) { echo "$search1 found at position $result1"; } else { echo "$search1 not found in the array"; } if ($result2 !== false) { echo "$search2 found at position $result2"; } else { echo "$search2 not found in the array"; }
上記のコードを実行すると、結果は次のようになります。
banana found at position 1 grape not found in the array
方法 3: in_array() を array_map() 関数と組み合わせて使用します
場合によっては、配列に文字列のセットに要素が含まれているかどうかを確認する必要があります。現時点では、in_array() 関数と array_map() 関数を組み合わせて使用できます。 array_map() 関数は、配列の各要素に対してユーザー定義関数を実行し、すべての関数処理の結果を含む新しい配列を返します。 array_map() 関数で in_array() 関数を呼び出して値を見つけることができます。サンプル コードは次のとおりです。
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search = array('apple', 'watermelon'); $found = array_filter(array_map(function($needle) use($fruits){ return in_array($needle, $fruits); }, $search)); if ($found) { echo "Found these fruits: "; print_r($found); } else { echo "No fruits found"; }
上記のコードを実行すると、結果は次のようになります。
Found these fruits: Array ( [0] => 1 )
上記のコードでは、array_map() 関数と array_filter() 関数を使用します。 array_map() 関数は、$search 配列内の各要素を反復処理し、要素が $fruits 配列に含まれているかどうかをチェックする匿名関数を各要素に対して呼び出します。 array_filter() 関数は配列を受け取り、true の要素のみを含む配列を返します。この場合、$found には要素が存在する位置のみが含まれます。
方法 4: preg_grep() 関数を使用する
文字「a」で始まるすべての要素など、特定のパターンを含む要素を配列内で検索する必要がある場合は、次のようにします。 php()関数でpreg_grepを使用します。 preg_grep() 関数は、パターンに一致するすべての要素を含む配列を返します。サンプル コードは次のとおりです。
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $pattern = '/^a/'; $found = preg_grep($pattern, $fruits); if ($found) { echo "Found these fruits: "; print_r($found); } else { echo "No fruits found"; }
上記のコードを実行すると、結果は次のようになります。
Found these fruits: Array ( [0] => apple )
上記のコードでは、正規表現 "/^a/" を使用して文字を照合します。 「a」で始まる要素。 preg_grep() 関数は、正規表現と検索対象の配列を受け取り、その式に一致するすべての要素を含む配列を返します。
概要
この記事では、配列に特定の文字列が含まれているかどうかを確認するための PHP の 4 つの異なる方法を紹介します。これらの方法には、in_array() 関数、array_search() 関数、in_array() 関数と array_map() 関数の組み合わせ、および preg_grep() 関数の使用が含まれます。これらのメソッドはすべて PHP で一般的に使用される配列クエリ メソッドであり、作業では特定の状況に応じて適切なメソッドを選択して適用できます。
以上がPHP が配列内に文字列が存在するかどうかをどのように判断するかを調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。