ホームページ > バックエンド開発 > PHPの問題 > PHP で値が配列内にあるかどうかを判断する方法 (さまざまな方法の簡単な分析)

PHP で値が配列内にあるかどうかを判断する方法 (さまざまな方法の簡単な分析)

PHPz
リリース: 2023-04-12 10:52:39
オリジナル
1223 人が閲覧しました

PHP は人気のあるプログラミング言語であり、その配列は非常に重要なデータ構造です。値が配列内にあるかどうかを判断する必要がある場合は、PHP の in_array() 関数を使用できます。この記事では、in_array() 関数とその他のいくつかのメソッドを使用して、値が配列内にあるかどうかを判断する方法について詳しく説明します。

1. in_array() 関数を使用して、値が配列内にあるかどうかを判断します

PHP では、in_array() 関数は、値が配列内にあるかどうかを判断するために最も簡単で最も一般的に使用される方法です。配列内にあります。その構文は次のとおりです:

in_array($value, $array, $strict);

このうち、$value は検索する値、$array は検索する配列です。 、$strict は、型チェックを実行するかどうかを示すオプションのパラメーターです。

たとえば、いくつかの果物を含む配列 $fruits があります:

$fruits = [
  'apple',
  'banana',
  'pear',
  'orange',
  'kiwi'
];
ログイン後にコピー

次に、配列 $fruits に「洋ナシ」があるかどうかを確認したいとします。次のコードを使用できます。 :

if (in_array('pear', $fruits)) {
  echo 'pear is in the array.';
} else {
  echo 'pear is not in the array.';
}
ログイン後にコピー

出力結果は次のとおりです:

pear is in the array.
ログイン後にコピー

型チェックを実行したい場合は、$strict パラメーターを true に設定できます。例:

$numbers = [1, 2, 3, 4, 5];
if (in_array('1', $numbers, true)) {
  echo '1 is in the array.';
} else {
  echo '1 is not in the array.';
}
ログイン後にコピー

出力結果は:

1 is not in the array.
ログイン後にコピー

2. array_search() 関数を使用して、値が配列内にあるかどうかを確認します

別の方法で値が配列内にあるかどうかを確認します。値は配列内にあり、array_search() 関数を使用します。その構文は次のとおりです:

array_search($value, $array, $strict);

このうち、$value は検索する値、$array は検索する配列です。 、$strict は、型チェックを実行するかどうかを示すオプションのパラメーターです。見つかった場合、関数は配列内の値のキー名を返し、見つからなかった場合は false を返します。

たとえば、いくつかの果物の価格を含む連想配列 $prices があります。

$prices = [
  'apple' => 0.5,
  'banana' => 0.3,
  'pear' => 0.6,
  'orange' => 0.8,
  'kiwi' => 0.7
];
ログイン後にコピー

次に、「バナナ」の価格が配列 $prices に存在するかどうかを判断したいとします。

$key = array_search(0.3, $prices);
if ($key !== false) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}
ログイン後にコピー

出力は次のとおりです:

banana exists and the price is 0.3
ログイン後にコピー
ログイン後にコピー

型チェックを実行したい場合は、$strict パラメータを true に設定できます。例:

$key = array_search('0.3', $prices, true);
if ($key !== false) {
  echo 'banana exists but its price is in a different data type.';
} else {
  echo 'banana does not exist.';
}
ログイン後にコピー

出力結果は:

banana does not exist.
ログイン後にコピー

3. isset() 関数を使用して、値が配列内にあるかどうかを確認します

もう 1 つの簡単な方法は、次のとおりです。 isset() キーが配列内に存在するかどうかを判断する関数。例:

if (isset($prices['banana'])) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}
ログイン後にコピー

出力結果は前の例と同じです:

banana exists and the price is 0.3
ログイン後にコピー
ログイン後にコピー

ただし、このメソッドでは、配列内の値の中に値が存在するかどうかを判断できません。ただし、キーが配列内に存在するかどうかを判断することしかできません。したがって、連想配列や多次元配列ではなく、通常の配列でのみ機能します。

4. in_array() および array_search() の拡張メソッドを使用する

in_array() および array_search() 関数を直接使用することに加えて、役立つ拡張メソッドがいくつかあります。値が配列内にあるかどうかを判断する方が良いでしょう。例:

1. in_array() 関数で array_keys() 関数を使用します:

if (in_array($value, array_keys($array))) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}
ログイン後にコピー

このメソッドの原理は、最初に array_keys() 関数を使用してすべてのキーを取得することです。 in_array() 関数は、値がキーのリストにあるかどうかを判断します。ただし、この方法は非効率的であり、配列が大きい場合には多くのメモリと時間を消費します。

2. array_flip() 関数と isset() 関数を使用します:

if (isset(array_flip($array)[$value])) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}
ログイン後にコピー

この方法の原理は、まず array_flip() 関数を使用してキーと値を反転することです。配列を取得し、isset() 関数を使用して値が新しい配列に存在するかどうかを確認します。この方法はより効率的ですが、連想配列や多次元配列ではなく、通常の配列にのみ適用されます。

5. 概要

PHP では、値が配列内にあるかどうかを判断する方法が数多くありますが、最も一般的な方法は、in_array() 関数と array_search() 関数を使用することです。型チェックを実行したい場合は、$strict パラメーターを true に設定する必要があります。さらに、値が配列内にあるかどうかをより適切に判断するのに役立つ拡張メソッドがいくつかあります。状況に応じて異なる方法が選択される場合があります。

以上がPHP で値が配列内にあるかどうかを判断する方法 (さまざまな方法の簡単な分析)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート