PHP で配列を使用する場合、配列内に要素が存在するかどうかを確認するのが一般的な要件です。配列内の要素が整数または浮動小数点数の場合、 in_array() 関数を使用して、その要素が配列に含まれているかどうかを確認できます。ただし、配列に文字列が含まれているかどうかを確認する場合、この関数は正しく機能しません。
それでは、PHP 配列に文字列が含まれているかどうかをどのように確認すればよいでしょうか?
方法 1: in_array() 関数を使用して
$fruits = array("apple", "banana", "orange"); if (in_array("apple", $fruits)) { echo "苹果在数组中"; } else { echo "苹果不在数组中"; }
上記のコードでは、in_array() 関数の最初のパラメーターは検索する要素で、2 番目のパラメーターは検索する配列。この関数は、見つかった要素が配列内にある場合は true を返し、それ以外の場合は false を返します。
ただし、探しているものが文字列の場合、in_array() 関数は文字列の特定の部分を比較するのではなく、要素全体として文字列を比較します。これは、探している文字列の一部である要素が配列に含まれている場合でも、in_array() 関数は false を返すことを意味します。したがって、in_array() 関数は、PHP 配列に文字列が含まれているかどうかを正確にチェックできません。
方法 2: array_search() 関数を使用して
$fruits = array("apple", "banana", "orange"); $key = array_search("apple", $fruits); if ($key !== false) { echo "苹果在数组中,键名为:" . $key; } else { echo "苹果不在数组中"; }
array_search() 関数は in_array() 関数に似ており、配列内の指定された値を検索するために使用されます。違いは、array_search() 関数が true/false ではなく、配列内の要素のキー名を返すことです。見つかった要素が配列内にない場合は false を返します。
array_search() 関数を使用する場合、この関数は厳密で大文字と小文字が区別されることに注意してください。つまり、文字列がすべて大文字である配列内で小文字の文字列を検索すると、それらが同一であっても、array_search() 関数は false を返します。
方法 3: in_array() 関数と array_map() 関数を使用して、共同使用を決定します。
function array_value_exists($needle, $haystack) { return in_array($needle, array_map('strtolower', $haystack)); }
このメソッドは、in_array() 関数と array_map() 関数を共同で使用して、次のすべての文字列を決定します。配列を小文字に変換し、変換された配列で指定された文字列を検索します。したがって、文字列が大文字であっても小文字であっても、配列内で見つけることができます。
結論
PHP では、配列を使用する場合、配列に文字列が含まれているかどうかを確認するために、状況に応じてさまざまな方法を選択する必要があります。照合する必要がある文字列がユーザーによって入力された場合は、大文字化によって発生する問題を回避するために 3 番目の方法を使用する必要があるかどうかを検討する必要があります。
以上がPHPの配列に文字列が存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。