PHP では、文字列が配列内に存在するかどうかを判断する必要がある場合があります。この状況はプログラミングではよくあることで、例えば、ユーザーが入力した内容が特定のキーワードであるかどうかを判断したり、ファイル名に特定の拡張子が含まれているかどうかを確認したりする必要があります。大きな配列内で特定の文字列を検索する必要がある場合は、その文字列が配列内に存在するかどうかを迅速かつ信頼性の高い方法で判断する必要があります。
PHP には、配列内に文字列が存在するかどうかを判断するためのメソッドがいくつか用意されています。
1. in_array() 関数の使用
in_array() 関数は、配列内に値が存在するかどうかを確認するために使用される PHP の関数です。構文は次のとおりです。
bool in_array (mixed $needle , array $haystack [, bool $strict = FALSE ] )
$needle は検索する値、$haystack は検索対象の配列内で検索される値 $strict は、厳密な比較を実行するかどうかを示すために使用されるオプションのパラメーターです。 $strict 引数が TRUE の場合、in_array() 関数は検索時に型を考慮しますが、それ以外の場合は考慮しません。
次は、in_array() 関数を使用して、文字列が配列内に存在するかどうかを判断する簡単な例です。
$keywords = array("PHP", "MySQL", "HTML) " , "CSS");
$searchTerm = "MySQL";
if (in_array($searchTerm, $keywords)) {
echo "字符串$searchTerm存在于数组中";
} else {
echo "字符串$searchTerm不存在于数组中";
}
上記の例では、まず配列 $keywords を定義し、それにいくつかの要素を追加します。次に、検索する文字列 $searchTerm を定義します。次に、in_array() 関数を使用して、$searchTerm が $keywords 配列に存在するかどうかを確認します。 $keywords 配列に $searchTerm が存在する場合は「$searchTerm が配列に存在します」という文字列が出力され、それ以外の場合は「$searchTerm が配列に存在しません」という文字列が出力されます。
2. array_search() 関数を使用する
array_search() 関数は、配列内の特定の値の位置を見つけるために使用される PHP の別の関数です。構文は次のとおりです。
mixed array_search (mixed $needle , array $haystack [, bool $strict = FALSE ] )
$needle は検索する値、$haystack は検索される配列内で、$strict は、厳密な比較を実行するかどうかを示すために使用されるオプションのパラメーターです。 $strict 引数が TRUE の場合、in_array() 関数は検索時に型を考慮しますが、それ以外の場合は考慮しません。
次は、array_search() 関数を使用して、文字列が配列内に存在するかどうかを判断する簡単な例です。
$keywords = array("PHP", "MySQL", "HTML) " , "CSS");
$searchTerm = "MySQL";
$searchResult = array_search($searchTerm, $keywords);
if ($searchResult !== false) {
echo "字符串$searchTerm存在于数组中,在位置$searchResult";
} else {
echo "字符串$searchTerm不存在于数组中";
}
上記の例では、まず配列 $keywords と検索対象の文字列 $searchTerm を定義します。次に、array_search() 関数を使用して、$keywords 配列内の $searchTerm の位置を見つけます。 $searchTerm が $keywords 配列に存在する場合、$searchResult 変数にはその位置が含まれ、文字列「$searchTerm が $searchResult の位置に配列に存在します」が出力されます。それ以外の場合は、「$searchTerm が配列に存在しません」という文字列が出力されます。
3. in_array() 関数と array_keys() 関数を使用する
配列内の特定の文字列を検索する別の方法は、in_array() 関数と array_keys() 関数を組み合わせて使用することです。このメソッドは、まず in_array() 関数を使用して文字列が配列内に存在するかどうかを確認し、存在する場合は array_keys() 関数を使用してそのすべての位置を取得します。
以下は、in_array() 関数と array_keys() 関数を使用して、文字列が配列内に存在するかどうかを判断する簡単な例です。
$keywords = array("PHP", "MySQL") , "HTML", "CSS", "PHP");
$searchTerm = "PHP";
if (in_array($searchTerm, $keywords)) {
$positions = array_keys($keywords, $searchTerm); echo "字符串$searchTerm出现在数组中的位置:" . implode(",", $positions);
} else {
echo "字符串$searchTerm不存在于数组中";
}
上記の例では、複数の要素を含む配列 $keywords を提供しました。次に、$searchTerm を検索する文字列を定義し、in_array() 関数を使用して、その文字列が $keywords 配列に存在するかどうかを確認します。 $searchTerm が $keywords 配列に存在する場合、array_keys() 関数を使用して配列内のすべての $searchTerms の位置を取得し、implode() 関数を使用してそれをカンマ区切りの文字列として出力します。それ以外の場合は、「$searchTerm が配列に存在しません」という文字列が出力されます。
概要
PHP では、配列内に文字列が存在するかどうかを確認する方法がいくつかあります。これらの方法のいずれかを使用してコードを記述すると、高速かつ信頼性が高くなります。 in_array() 関数を使用すると、配列内に文字列が存在するかどうかを直接確認できます。 array_search() 関数を使用すると、配列内の文字列の位置を見つけることができます。最後に、配列内のすべての特定の文字列の位置を取得する必要がある場合は、in_array() 関数と array_keys() 関数を組み合わせることができます。
以上がPHPの配列に文字列が存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。