開発者として、私たちは配列を処理して操作する必要があることがよくあります。 PHP では、配列内に特定の値が存在するかどうかを判断することが頻繁に発生するタスクです。
PHP では、配列に特定の値が含まれているかどうかを確認する方法がたくさんあります。この記事では、一般的に使用されるいくつかの方法を紹介します。
1. in_array() 関数
in_array() は PHP の組み込み関数の 1 つで、配列に値が存在するかどうかを確認するために使用されます。その構文は次のとおりです。
bool in_array (mixed $needle , array $haystack [, bool $strict = FALSE ] )
この関数には 3 つのパラメータがあります。検索対象 (needle )、検索対象の配列 (haystack)、およびオプションの bool 型パラメーター strict。このうち、needle と haystack は渡す必要があり、strict のデフォルト値は false です。
検索対象の値needleが検索対象の配列haystack内にある場合はtrueを返し、そうでない場合はfalseを返します。以下に例を示します。
$fruits = array("apple", "banana", "orange");
if (in_array("apple", $fruits)) {
echo "找到了 apple!";
}
上記の例では、$fruits は複数の果物の名前を含む配列であり、in_array() 関数は文字列「apple」が含まれているかどうかをチェックします。配列には「apple」が含まれているため、出力は「Apple found!」となります。
2. array_search() 関数
array_search() 関数は in_array() に似ており、値が配列内にあるかどうかを検索するためにも使用されます。違いは、bool 型の結果を返すのではなく、見つかったキー名 (key) を返すことです。構文は次のとおりです。
mixed array_search (mixed $needle , array $haystack [, bool $strict = false ] )
この関数には 3 つのパラメータがあり、needle は値です。見つかった場合、haystack は検索対象の配列であり、strict パラメータは型の厳密な比較を有効にするかどうかです。
検索対象の値needleが検索対象の配列haystackに存在する場合は、その値に対応するキー名を返し、そうでない場合はfalseを返します。以下に例を示します。
$casual_fruits = array("apple", "banana", "orange");
$key = array_search("banana", $casual_fruits);
if ( $key) {
echo "banana 在数组中的键名是 " . $key;
}
上記の例では、 $casual_fruits 配列にはいくつかのエキゾチックなフルーツの名前が含まれており、 array_search() 関数は値 "banana" が含まれているかどうかを検出し、戻り値を返します。見つかったら「1」、echoで「配列中のバナナのキー名は1」と出力します。
3. in_array() 関数と array_search() 関数の違い
in_array() 関数と array_search() 関数はどちらも配列に特定の値が含まれているかどうかを確認するために使用されますが、その戻り値は適用されるシナリオも異なります。
in_array() は bool 型の値を返します。これは通常、配列内の位置を知らずに値が存在するかどうかを判断するために使用されます。 Array_search() はキー名を返します。これは通常、値が存在するかどうかを確認するために使用され、配列内のその位置を知る必要があります。
結果の存在のみに関心がある場合は、in_array() 関数を使用し、配列内の値の位置を取得する必要がある場合は、array_search() 関数を使用します。
4. Array_key_exists() 関数
配列内に値が存在するかどうかを確認することに加えて、特定のキー名が存在するかどうかも確認する必要がある場合があります。このとき、PHP 組み込み関数 array_key_exists() を使用する必要があります。構文は次のとおりです。
bool array_key_exists (mixed $key, array $array)
この関数には 2 つのパラメータがあります。ここで、key パラメータは検索するキー名で、配列はパラメータは、検索するキーです。
キー名が配列内に存在する場合は true を返し、それ以外の場合は false を返します。以下に例を示します:
$arr = array("a" => "apple", "b" => "banana");
if (array_key_exists("a", $arr )) {
echo "键名 a 存在于该数组中。";
}
上記のコード例では、いくつかのキーと値のペアを含む配列を作成しました。キー名「a」が存在するかどうかを確認し、存在するので「この配列にはキー名aが存在します。」と出力します。
5. isset() 関数
array_key_exists() 関数とは異なり、isset() 関数はキー名が存在するかどうかを確認するだけでなく、キー名に対応する値が存在するかどうかも確認できます。 。構文は次のとおりです。
bool isset (mixed $var [,mixed $...] )
この関数は複数のパラメータを受け入れることができ、各パラメータは変数または配列のキー名。パラメータが存在し、その値が NULL でない場合は true を返し、それ以外の場合は false を返します。
これは例です:
$arr = array("a" => "apple", "b" => "banana");
if ( isset( $arr["a"])) {
echo "键名 a 存在于该数组中,并且它的值是 " . $arr["a"];
}
上記のコード例では、isset() 関数を使用して "a" キー名をチェックしました。が存在する場合は、キー名に対応する値を出力します。
概要
PHP で配列に特定の値が含まれているかどうかを確認するには、in_array()、array_search()、array_key_exists()、および isset() 関数を使用できます。このうち、in_array() 関数と array_search() 関数は主に値が存在するかどうかを確認するために使用され、array_key_exists() 関数と isset() 関数は主にキー名が存在するかどうかを確認するために使用されます。
値が配列に存在するかどうかだけを確認する必要がある場合は、in_array() 関数を使用します。配列内の値のキー名を取得する必要がある場合は、array_search() を使用できます。キー名が配列内に存在するかどうかを判断する必要がある場合は、array_key_exists() 関数を使用し、キー名とそれに対応する値が同時に存在するかどうかを判断する必要がある場合は、isset() 関数を使用できます。
以上がphpは配列があるかどうかを検出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。