ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して値が2D配列にあるかどうかを確認する方法

PHPを使用して値が2D配列にあるかどうかを確認する方法

PHPz
PHPzオリジナル
2023-04-14 20:03:111045ブラウズ

PHP では、2 次元配列は非常に一般的なデータ構造です。実際の開発では、特定の値が 2 次元配列に含まれるかどうかを判断する必要がある場合があります。この記事では、PHP を使用して値が 2 次元配列であるかどうかを確認する方法を紹介します。

  1. 方法 1: foreach ループを使用する

foreach ループを使用して 2 次元配列を走査し、各値を 1 つずつ比較し、値が存在する場合は true を返します。 2 次元配列、それ以外の場合は false を返します。

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

function in_array_2d($value, $array) {
    foreach ($array as $item) {
        if (in_array($value, $item)) {
            return true;
        }
    }
    return false;
}

上記のコードの実装は比較的単純で、PHP の組み込み in_array 関数を使用して、値が配列内にあるかどうかを判断し、 2 次元配列を走査するための foreach ループ。

使用方法も非常に簡単で、判定したい値と二次元配列を渡すだけです。例:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

この例では、$array は二次元配列です。配列の$valueは判定対象の値で、実行結果は「配列に値が存在する」となります。

  1. 方法 2: array_walk_recursive 関数を使用する

array_walk_recursive 関数を使用して、2 次元配列内のすべての要素を走査します。値が存在する場合は true を返し、存在しない場合は true を返します。 falseを返します。

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

function in_array_2d($value, $array) {
    $exist = false;
    array_walk_recursive($array, function($item) use (&$exist, $value) {
        if ($item == $value) {
            $exist = true;
        }
    });
    return $exist;
}

上記のコードは、array_walk_recursive 関数を使用して 2 次元配列を走査し、use キーワードを使用して $exist と $value を関数に渡します。 . $exist が存在します フラグ変数、$value は判定が必要な値です。

同様に、使用方法も非常に簡単で、判定対象の値と二次元配列を渡すだけです。例:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

この例では、$array は 2 次元配列です。 -次元配列の場合、$value は判定対象の値で、実行結果は「値が配列に存在する」となります。

概要

上記の 2 つの方法はどちらも、値が 2 次元配列内にあるかどうかを判断するために使用できます。使用するときは、自分のニーズに応じてさまざまな方法を選択できます。パフォーマンスの点では、両方のメソッドの時間計算量は O(n^2) です。2 次元配列が比較的大きい場合は、他のより効率的なアルゴリズムを選択することをお勧めします。

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

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