ホームページ  >  記事  >  バックエンド開発  >  PHPで指定された値が配列に含まれているかどうかを確認する方法

PHPで指定された値が配列に含まれているかどうかを確認する方法

PHPz
PHPzオリジナル
2023-04-26 14:24:19487ブラウズ

PHP プログラミングでは、要素が配列内にあるかどうかを判断するのは一般的な操作であり、in_array 関数を使用して実装できます。ただし、開発者によっては PHP のネイティブ構文、つまり「==」または「===」を使用して判断する場合があり、この場合は異なる結果が得られる可能性があります。したがって、この記事では、PHP が配列に含まれるかどうかに関する関連問題について説明します。

1. in_array 関数の使用

in_array は、要素が配列内にあるかどうかを判断するために PHP が提供する関数です。その構文は次のとおりです。 mixed $needle , array $haystack [, bool $strict = FALSE ] )

この関数は 3 つのパラメータを受け入れます:

needle: 検索する要素
  1. haystack: 見つかりません
  2. strict の配列: strict モードを使用するかどうか。 true の場合、要素が配列要素と同じ型である (型と値の両方が一致する) かどうかを判断します。
  3. たとえば、次のコードでは、in_array を使用して、「apple」が $fruits 配列内にあるかどうかを判断します。
$fruits = array('banana', 'apple', 'orange');
if (in_array('apple', $fruits)) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

上記のコードは、「はい、リンゴはあります」と出力します。これは、「apple」が確かに $fruits 配列にあるためです。

2. 要素が配列内にあるかどうかを判断するためのネイティブ PHP 構文

開発者によっては、要素が配列内にあるかどうかを判断するために、「==」などのネイティブ PHP 構文を使用する場合があります。または「== =」で比較します。例:

$fruits = array('banana', 'apple', 'orange');
if ('apple' == $fruits[1]) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

このコードは in_array を使用するコードと同等で、両方とも「はい、リンゴは果物の配列内にあります」と出力します。 「apple」は $fruits[1] と同じ値を持つためです。

ただし、要素が配列内にあるかどうかを判断するためにネイティブ PHP 構文を使用すると、特に「===」を使用した場合、異なる結果が生じる可能性があります。

たとえば、次のコードでは、整数 1 と文字列 '1' の両方を配列要素と比較します。

$test_array = array('1', '2', '3');
var_dump(1 == $test_array[0]);    // true
var_dump('1' == $test_array[0]);  // true,因为'1'会被转换成整型1
var_dump(1 === $test_array[0]);   // false,类型不匹配
var_dump('1' === $test_array[0]); // false,类型不匹配

上記のコードでは、比較に「==」を使用します。の場合、整数型 1 と文字列 '1' は両方とも整数型 1 に変換されるため、配列要素 '1' と同じになります。

ただし、「===」比較を使用した場合、型が一致しないため(一方は整数、もう一方は文字列)、比較結果は偽となります。

3. 要素が配列内にあるかどうかを判断するその他の方法

in_array 関数とネイティブ PHP 構文の使用に加えて、要素が配列内にあるかどうかを判断する他の方法があります。 。

array_search 関数
  1. array_search 関数は、配列内の要素を見つけて、対応するキー名を返します。見つからない場合は false を返します。例:
$fruits = array('banana', 'apple', 'orange');
$key = array_search('apple', $fruits);
if ($key !== false) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

上記のコードでは、「apple」が見つかった場合、対応するキー名 1 が返されるため、「はい、リンゴはフルーツ配列にあります」と出力されます。

in_array 関数と array_flip 関数の組み合わせ
  1. in_array 関数と array_flip 関数を組み合わせて使用​​すると、要素が配列内にあるかどうかをすばやく判断できますが、値が配列内の値は一意である必要があります。
$fruits = array('banana', 'apple', 'orange');
$flip_fruits = array_flip($fruits); // 交换键和值
if (isset($flip_fruits['apple'])) {
    echo 'Yes, apple is in the fruits array';
} else {
    echo 'Sorry, apple is not in the fruits array';
}

上記のコードでは、$fruits 配列のキーと値を交換して、新しい $flip_fruits 配列を取得します。次に、 isset 関数を使用して、'apple' が $flip_fruits 配列のキーであるかどうかを判断し、キーである場合、'apple' は $fruits 配列内にあります。

4. 概要

PHP プログラミングでは、要素が配列内にあるかどうかを判断するのが一般的な操作であり、in_array 関数を使用して実装できます。この関数はネイティブ PHP 構文を使用して実装することもできますが、型一致の問題に注意する必要があります。また、array_search 関数や in_array 関数と array_flip 関数を組み合わせるなど、他の方法も使用できます。

最後に、この記事が PHP 開発者が配列を扱う際に役立つことを願っています。

以上がPHPで指定された値が配列に含まれているかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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