ホームページ > バックエンド開発 > PHPの問題 > PHPで特定の数値が配列内にあるかどうかを判断する方法

PHPで特定の数値が配列内にあるかどうかを判断する方法

PHPz
リリース: 2023-04-17 17:16:37
オリジナル
691 人が閲覧しました

PHP では、数値が配列内にあるかどうかを判断するメソッドが多数ありますが、この記事では、これらのメソッドを詳しく紹介し、その他の配列演算関数もいくつか紹介します。

  1. in_array() 関数を使用する

in_array() 関数は、値が配列内にあるかどうかを判断できます。構文は次のとおりです:

in_array($value, $array, $strict)
ログイン後にコピー

そのうち、$ value パラメーターは検索する値を示し、$array パラメーターは検索する配列を示し、$strict パラメーターはデータ型が厳密に一致するかどうかを示します。これは省略可能で、デフォルトは false です。値が見つかった場合は true を返し、そうでない場合は false を返します。

サンプル コードは次のとおりです。

$fruits = array("apple", "banana", "orange");

if (in_array("apple", $fruits)) {
    echo "苹果在数组中存在!";
} else {
    echo "苹果不在数组中存在!";
}
ログイン後にコピー

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

苹果在数组中存在!
ログイン後にコピー
  1. array_search() 関数を使用します。

array_search() 関数 配列内で指定された値を検索し、対応するキー名を返します。見つからない場合は false を返します。構文は次のとおりです。

array_search($value, $array, $strict)
ログイン後にコピー

このうち、$value パラメータは検索する値を示し、$array パラメータは検索する配列を示し、$strict パラメータはデータ型が厳密に一致するかどうかを示します。これは省略可能で、デフォルトは false です。

サンプルコードは次のとおりです:

$fruits = array("apple", "banana", "orange");

$key = array_search("banana", $fruits);
if ($key !== false) {
    echo "香蕉在数组中的键名为:" . $key;
} else {
    echo "香蕉不在数组中存在!";
}
ログイン後にコピー

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

香蕉在数组中的键名为:1
ログイン後にコピー
ログイン後にコピー

特定の値が存在するかどうかを調べたい場合は、次のように使用できます。 :

$fruits = array("apple", "banana", "orange");

if (array_search("orange", $fruits) !== false) {
    echo "橘子在数组中存在!";
} else {
    echo "橘子不在数组中存在!";
}
ログイン後にコピー

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

橘子在数组中存在!
ログイン後にコピー
ログイン後にコピー
  1. in_array() と array_search() を使用して同時に決定します

場合によっては、次のことが必要です。値が配列にあるかどうかを知り、そのキー名がわかれば、in_array() と array_search() の 2 つの関数を組み合わせて同時に判断できます。

サンプル コードは次のとおりです。

$fruits = array("apple", "banana", "orange");

if (in_array("banana", $fruits) && ($key = array_search("banana", $fruits)) !== false) {
    echo "香蕉在数组中的键名为:" . $key;
} else {
    echo "香蕉不在数组中存在!";
}
ログイン後にコピー

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

香蕉在数组中的键名为:1
ログイン後にコピー
ログイン後にコピー
  1. Array_key_exists() 関数を使用します。

array_key_exists () 関数 can 指定されたキー名が配列内に存在するかどうかを判断するための構文は次のとおりです。

array_key_exists($key, $array)
ログイン後にコピー

このうち、$key パラメーターは検索するキー名を表し、$array パラメーターは検索するキー名を表します。検索する配列。キー名が見つかった場合は true を返し、そうでない場合は false を返します。

サンプル コードは次のとおりです。

$fruits = array("apple" => 0, "banana" => 1, "orange" => 2);

if (array_key_exists("banana", $fruits)) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
ログイン後にコピー

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

香蕉在数组中存在!
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. isset() 関数を使用します。

isset () 関数 can 指定されたキー名が配列内に存在するかどうかを判断するための構文は次のとおりです。

isset($array[$key])
ログイン後にコピー

このうち、$key パラメーターは検索するキー名を表し、$array パラメーターは検索するキー名を表します。検索する配列。キー名が見つかった場合は true を返し、そうでない場合は false を返します。

サンプル コードは次のとおりです。

$fruits = array("apple" => 0, "banana" => 1, "orange" => 2);

if (isset($fruits["orange"])) {
    echo "橘子在数组中存在!";
} else {
    echo "橘子不在数组中存在!";
}
ログイン後にコピー

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

橘子在数组中存在!
ログイン後にコピー
ログイン後にコピー

注: isset() 関数を使用する場合、次の値に対応する値が存在しないことに注意してください。キー名が null の場合は false も返されるため、配列内にキーが存在するかどうかを正確に判断できません。

  1. array_diff() 関数を使用する

array_diff() 関数は 2 つの配列間の差異を見つけることができます。つまり、最初の配列にはあるが、最初の配列には存在しない差異を返します。次の配列のすべての値。したがって、検索対象の値を 1 番目の配列、元の配列を 2 番目の配列として検索した結果、差分集合が空であれば、元の配列に存在することになります。

サンプル コードは次のとおりです。

$fruits = array("apple", "banana", "orange");

if (count(array_diff(array("banana"), $fruits)) == 0) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
ログイン後にコピー

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

香蕉在数组中存在!
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. Use preg_grep() function

preg_grep () 関数は、正規表現を使用して配列要素を照合し、一致するすべての要素を返すことができます。したがって、検索する値を正規表現として使用し、元の配列をパラメータとして使用し、検索結果が空でない配列であれば、それは元の配列に存在することを意味します。

サンプルコードは以下のとおりです。

$fruits = array("apple", "banana", "orange");

if (count(preg_grep("/banana/", $fruits)) > 0) {
    echo "香蕉在数组中存在!";
} else {
    echo "香蕉不在数组中存在!";
}
ログイン後にコピー

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

香蕉在数组中存在!
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

以上は、PHP で配列に特定の数値があるかどうかを判定するさまざまな方法です。状況に応じて使い分けることができますので、ご自身に合った方法をお選びください。さらに、array_merge()、array_slice()、array_reverse() など、他にも多くの配列操作関数があります。さまざまなニーズに応じて、さまざまな関数を選択して使用できます。

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

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