ホームページ  >  記事  >  バックエンド開発  >  PHPで指定されたキー値が2次元配列に存在するかどうかを確認する方法

PHPで指定されたキー値が2次元配列に存在するかどうかを確認する方法

PHPz
PHPzオリジナル
2023-04-20 13:54:23971ブラウズ

PHP の 2 次元配列の場合、配列内にキーと値のペアが存在するかどうかを確認する必要があることがよくありますが、この記事ではいくつかの一般的な方法を紹介します。

  1. in_array 関数を使用する

in_array 関数は、値が配列内に存在するかどうかを判断するために使用できますが、値が 1 つの配列内に存在するかどうかのみ判断できます。次元配列であり、それが 2 次元配列であるかどうかを判断できません。キーと値のペア。そのバリアント in_array_recursive 関数を使用して、2 次元配列内のキーと値のペアが存在するかどうかを再帰的に判断できます。

サンプルコード:

function in_array_recursive($needle, $haystack, $strict = false)
{
    foreach ($haystack as $value) {
        if ((!$strict && $needle == $value) || ($strict && $needle === $value)) {
            return true;
        }
        if (is_array($value) && in_array_recursive($needle, $value, $strict)) {
            return true;
        }
    }
    return false;
}

$array = array(
    array('id' => 1, 'name' => '张三'),
    array('id' => 2, 'name' => '李四'),
    array('id' => 3, 'name' => '王五'),
);

if (in_array_recursive(array('id' => 1, 'name' => '张三'), $array)) {
    echo '存在';
} else {
    echo '不存在';
}
  1. array_column 関数を使用する

array_column 関数は、2 次元配列内の列を新しい 1 次元配列として抽出できます。 , これを使用して、配列内にキーが存在するかどうかを判断できます。

サンプル コード:

$array = array(
    array('id' => 1, 'name' => '张三'),
    array('id' => 2, 'name' => '李四'),
    array('id' => 3, 'name' => '王五'),
);

$ids = array_column($array, 'id');

if (in_array(1, $ids)) {
    echo '存在';
} else {
    echo '不存在';
}
  1. array_search 関数を使用する

array_search 関数は、配列内のキー値の位置を検索し、見つかった場合は返します。キーのインデックス。それ以外の場合は false が返されます。ただし、検索できるのは 1 次元配列のみであり、2 次元配列内のキーと値のペアは検索できません。 3 番目のパラメータを使用して、ルックアップ キーの値を指定できます。

サンプルコード:

$array = array(
    array('id' => 1, 'name' => '张三'),
    array('id' => 2, 'name' => '李四'),
    array('id' => 3, 'name' => '王五'),
);

foreach ($array as $key => $value) {
    if (array_search(1, $value)) {
        echo '存在';
        break;
    } else {
        echo '不存在';
    }
}

一般的な2次元配列の判定方法は上記の3つであり、状況に応じて適切な方法を選択してください。

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

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