ホームページ >バックエンド開発 >PHPの問題 >PHPは配列内に文字列が存在するかどうかを判断します

PHPは配列内に文字列が存在するかどうかを判断します

WBOY
WBOYオリジナル
2023-05-22 18:20:37821ブラウズ

PHP 開発では、文字列配列から特定の文字列が存在するかどうかを確認することが必要になることがよくあります。この種の操作は非常に一般的ですが、結局のところ、多くのシナリオでは、特定のキーワードに基づいてフィルタリングまたはフィルタリングする必要があります。では、特定の文字列が配列内に存在するかどうかを判断するにはどうすればよいでしょうか?この記事では実践的な方法をいくつか紹介します。

方法 1: in_array 関数を使用する

PHP には、要素が配列内にあるかどうかを判断するために使用される、非常に便利な関数 in_array が組み込まれています。この関数を使用すると、配列内に文字列が存在するかどうかを簡単に判断できます。 in_array 関数を使用するための基本的な構文は次のとおりです。

in_array($needle, $haystack); 

このうち、$needle は検索対象の文字列、$haystack は検索対象の配列です。 $needle が $haystack 配列に存在する場合は true、それ以外の場合は false を返します。

たとえば、次は 3 つの文字列で構成される配列です。文字列 "blue" が配列内に存在するかどうかを確認する必要があります:

$colors = array("red", "green", "blue");
if(in_array("blue", $colors)){
    echo "字符串'blue'存在于数组中";
} else {
    echo "字符串'blue'不存在于数组中";
}

出力結果は次のようになります: string 'blue'配列内に存在します

さらに、in_array は、厳密に一致するかどうかを示すために使用される 3 番目のパラメーター $strict もサポートしています。デフォルトでは、このパラメータは false です。つまり、$needle が $haystack に存在する限り、一致は成功したとみなされます。ただし、3 番目のパラメーターが true に設定されている場合は、$needle が $haystack に出現するだけでなく、$needle と $haystack の要素が同じ型であることも必要です。例:

$a = array(1, 2, '3');
if (in_array('3', $a, true)) {
    echo '"3" is in $a with strict check';
} else {
    echo '"3" is not in $a with strict check';
}

出力結果は次のとおりです: "3" は厳密なチェックでは $a にありません

方法 2: array_search 関数を使用します

array_search 関数を使用して検索します配列で値を返し、その値のキー名を返します。 in_array 関数とは異なり、この関数は true または false の値ではなく、一致したキー名を返します。要素が見つからない場合は false を返します。 array_search 関数を使用するための基本的な構文は次のとおりです。

array_search($needle, $haystack); 

ここで、$needle は検索対象の文字列、$haystack は検索対象の配列です。 $needle が $haystack 配列に存在する場合は、その要素に対応するキー名を返し、それ以外の場合は false を返します。

たとえば、次は 3 つの文字列で構成される配列です。文字列 "blue" が配列内に存在するかどうかを確認する必要があります:

$colors = array("red", "green", "blue");
$key = array_search("blue", $colors);
if ( $key !== false ) {
    echo "字符串'blue'存在于数组中,对应键名为".$key;
} else {
    echo "字符串'blue'不存在于数组中";
}

出力結果は次のようになります: string 'blue'が配列内に存在し、対応するキー名は 2

方法 3: in_array と array_map を組み合わせて使用​​します

単に文字列を検索するのではなく、複数の配列に文字列が存在するかどうかを確認したい場合配列では、in_array 関数と array_map 関数を組み合わせて使用​​できます。このメソッドを使用するための基本的な構文は次のとおりです。

function check_string_one_of_many_arrays($string, $arrays) {
    return count(array_filter($arrays, function($array) use ($string) {
        return in_array($string, $array);
    })) > 0;
}

このうち、$string は検索する必要がある文字列、$arrays は検索する必要がある配列コレクションです。この関数は、文字列が複数の配列に存在するかどうかを示すブール値を返します。

たとえば、現在 $colors1 と $colors2 の 2 つの配列があり、その中に文字列「blue」が存在するかどうかを判断する必要があります。

$colors1 = array("red", "green", "blue");
$colors2 = array("yellow", "black", "white");
if(check_string_one_of_many_arrays("blue", array($colors1, $colors2))){
    echo "字符串'blue'存在于数组中";
} else {
    echo "字符串'blue'不存在于数组中";
}

出力結果は次のとおりです。 'blue' が配列内に存在します

概要

上記は、文字列が配列内に存在するかどうかを確認する 3 つの一般的な方法です。さまざまなシナリオのニーズに応じて、さまざまな方法の使用を選択できます。どの方法を使用しても、配列内に文字列が存在するかどうかを判断することは非常にシンプルで理解しやすいため、日常の PHP プログラミングに広く適用する価値があります。

以上がPHPは配列内に文字列が存在するかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。