ホームページ >バックエンド開発 >PHPの問題 >PHPで2次元配列の値が繰り返されているかどうかを判断する方法

PHPで2次元配列の値が繰り返されているかどうかを判断する方法

PHPz
PHPzオリジナル
2023-04-25 09:04:201423ブラウズ

PHP 開発では、配列を操作する必要がよくあります。これには、2 次元配列内の値が繰り返されるかどうかを判断することが含まれる場合があります。たとえば、フォームを送信するときは、ユーザー名が登録されているかどうかを確認する必要があります。 2次元配列の値が重複しているかどうかを判定する方法です。

方法 1: 二重ループの走査を使用する

この方法は比較的単純です。二重ループを使用して 2 次元配列を走査し、各値を 1 つずつ比較して、一致しているかどうかを確認します。が繰り返される。コードは以下の通りです。

function is_duplicate($arr, $value) {
    foreach ($arr as $sub_arr) {
        foreach ($sub_arr as $sub_value) {
            if ($sub_value == $value) {
                return true;
            }
        }
    }
    return false;
}

このうち、$arrは2次元配列、$valueは判定対象の値です。最初に 1 次元配列を走査し、次に 2 次元配列を走査し、同じ値が見つかった場合は true を返します。それ以外の場合は、配列全体を走査した後に false が返されます。

方法 2: in_array() 関数を使用する

in_array() 関数は、配列内に値が存在するかどうかを判断できます。この関数を使用して、2 次元の値を判断できます。配列です。冗長ですか。コードは以下の通りです。

function is_duplicate($arr, $value) {
    foreach ($arr as $sub_arr) {
        if (in_array($value, $sub_arr)) {
            return true;
        }
    }
    return false;
}

このうち、$arrは2次元配列、$valueは判定対象の値です。まず 1 次元配列を走査し、次に in_array() 関数を使用して現在の 2 次元配列に値が存在するかどうかを確認し、存在する場合は true を返します。それ以外の場合は、配列全体を走査した後に false が返されます。

方法 3: array_column() 関数を使用する

array_column() 関数は、2 次元配列から値の列を取り出すことができます。 2 次元配列の値が繰り返されます。コードは以下の通りです。

function is_duplicate($arr, $value) {
    $column = array_column($arr, 0);
    return in_array($value, $column);
}

このうち、$arrは2次元配列、$valueは判定対象の値です。 array_column() 関数を使用して 2 次元配列の最初の列の値を取得し、in_array() 関数を使用して値が取得した列にあるかどうかを確認します。値が存在する場合は、true を返します。それ以外の場合は false を返します。

上記 3 つの方法はいずれも 2 次元配列内の特定の値が繰り返されているかどうかを判断できます。どの方法を選択するかは実際の状況に応じて選択できます。二重ループのトラバーサルは効率が低いため、array_column() 関数やその他のメソッドを使用することを選択できます。

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

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