インターネットと Web テクノロジーの急速な発展に伴い、PHP 言語は多くの Web 開発エンジニアにとって不可欠なスキルの 1 つになりました。 PHP 言語では、配列は非常に重要で一般的に使用されるデータ型であり、2 次元配列が最も頻繁に使用されます。では、PHP で要素が 2 次元配列にあるかどうかを判断するにはどうすればよいでしょうか?本稿ではその具体的な実装を原理や実装方法などの面から紹介していきます。
1. PHP の 2 次元配列とは何ですか?
PHP では、配列に別の配列を含めることができ、このタイプの配列を 2 次元配列と呼びます。平たく言えば、2 次元配列は複数の 1 次元配列で構成される配列であり、各 1 次元配列には複数の要素が含まれます。 2 次元配列の形式は次のとおりです。
$array = array( array('name'=>'小明', 'age'=>18), array('name'=>'小红', 'age'=>19), array('name'=>'小兰', 'age'=>20) );
上記のコードは 3 つの 1 次元配列を含む 2 次元配列であり、各 1 次元配列は 2 つの要素で構成されます。
2. PHP の要素が 2 次元配列内にあるかどうかを判断するにはどうすればよいでしょうか?
PHP では、1 次元配列に要素が存在するかどうかを判断するのは比較的簡単で、in_array() 関数を直接使用してこれを実現できます。ただし、要素が 2 次元配列に存在するかどうかを判断するのは少し面倒です。
2 次元配列の要素は複数のキーと値のペアで構成されており、任意のキーと値のペアを判断基準として使用できます。したがって、ループを使用して 2 次元配列を走査し、1 次元配列を 1 つずつ取り出して、目的の要素が 1 次元配列に存在するかどうかを判断できます。存在する場合は true を返し、存在しない場合は、すべての走査が完了するまで他の 1 次元配列の走査を続けます。以下に関数の例を示します。
function check_in_array($needle, $haystack) { if (!is_array($needle) || !is_array($haystack)) { return false; } foreach ($haystack as $value) { if (in_array($needle, $value)) { return true; } } return false; }
上記コードでは、$needle が対象要素、$haystack が判定対象の 2 次元配列になります。まず、入力されたパラメータが正しいかどうかを判断し、配列型でない場合は、直接 false を返します。次に、foreach ループを使用して 2 次元配列全体を走査し、各 1 次元配列を 1 つずつ取り出し、in_array() 関数を使用してターゲット要素が現在の 1 次元配列にあるかどうかを判断します。存在する場合は true を返し、ターゲット要素が 2 次元配列内にあることを示します。すべての 1 次元配列を走査してもターゲット要素が見つからなかった場合は、false を返し、ターゲット要素が 2 次元配列内にないことを示します。二次元配列。
3. 配列関数 array_column() の使用
上記の方法では 2 次元配列に要素が存在するかどうかを判定できますが、関数を自分で記述する必要があり、コードは比較的複雑です。長い。 PHP には、配列関数 array_column() を使用する、より便利で効率的な方法が用意されています。この関数の機能は、多次元配列から特定の列の値を取得して配列を返すことですが、この配列は対象の要素を含む 1 次元配列です。以下は、array_column() を使用して 2 次元配列に要素が存在するかどうかを判断するコードです:
function check_in_array($needle, $haystack) { if (!is_array($needle) || !is_array($haystack)) { return false; } $arr = array_column($haystack, 'id'); if (in_array($needle, $arr)) { return true; } return false; }
上記のコードでは、$needle と $haystack の意味は上記と同じです。 , $haystack からそれらを削除するには、array_column() 関数が使用されます。すべての id 列の値は、1 次元配列 $arr を形成し、in_array() 関数を使用して、ターゲット要素が $arr に存在するかどうかを判断します。 。存在する場合は、ターゲット要素が 2 次元配列内にあることを示す true を返し、存在しない場合は、ターゲット要素が 2 次元配列内にないことを示す false を返します。
4. まとめ
この記事では、PHP で 2 次元配列に要素が存在するかどうかを判定する方法を、配列関数 array_column( )。 array_column() 関数を使用する場合は、取り出す列の値が一意である必要があることに注意してください。そうでないと、予期しない結果が発生します。さらに、実際のアプリケーション シナリオによっては、要素が 2 次元配列に存在するかどうかを判断する必要があることを認識するために、対応する関数を自分で記述する必要がある場合があります。
以上がphpは二次元配列ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。