ホームページ  >  記事  >  バックエンド開発  >  特定の値に対するPHP多次元配列クエリ

特定の値に対するPHP多次元配列クエリ

WBOY
WBOYオリジナル
2023-05-05 21:21:06593ブラウズ

PHP では、配列は非常に一般的なデータ構造であり、複数の値を格納できるデータ型です。多次元配列とは、他の配列を格納できる配列、つまり配列の配列を指します。多次元配列は特定の状況には非常に適していますが、特定の値をクエリする場合は、特別なメソッドやテクニックを使用する必要がある場合があります。この記事では、PHP で多次元配列内の特定の値をクエリする方法を紹介します。

  1. ループを使用した配列の走査

PHP で多次元配列の値をクエリする最も簡単な方法は、ループを使用して配列を走査することです。具体的な実装プロセスは次のとおりです。

function searchValue($arr, $value) {
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            $result = searchValue($val, $value);
            if ($result !== false) {
                return $result;
            }
        } else if ($val === $value) {
            return $key;
        }
    }
    return false;
}

上記のコードは、再帰的メソッドを使用して多次元配列を走査し、ターゲット値が見つかるか配列全体が走査されるまで、層ごとに深く進みます。ターゲット値が見つかった場合は、値が配置されているインデックスを返し、それ以外の場合は false を返します。

  1. PHP 配列関数の使用

ループ トラバーサルの使用に加えて、PHP 独自の配列関数の一部を使用して、多次元配列内の特定の値をクエリすることもできます。 。

(1)array_walk_recursive 関数

array_walk_recursive 関数は、多次元配列内のすべての要素を走査し、コールバック関数を呼び出して各要素を処理できます。具体的な実装プロセスは次のとおりです:

function searchValue($arr, $value) {
    $found = false;
    array_walk_recursive($arr, function($val, $key) use ($value, &$found) {
        if ($val === $value) {
            $found = $key;
        }
    });
    return $found;
}

上記のコードは、array_walk_recursive 関数のコールバック関数を searchValue 関数にネストして、ターゲット値を検索します。見つかった場合は、値の位置のインデックスが格納されます。 $found 変数. を返し、変数の値を返します。

(2)array_column 関数

array_column 関数は、多次元配列から指定した列の値を取得できます。したがって、特定の値が多次元配列に存在するかどうかをクエリしたい場合は、まず array_column 関数を使用して値が配置されている列のすべての値を取得し、それをクエリします。具体的な実装プロセスは次のとおりです。

function searchValue($arr, $value) {
    $col = array_column($arr, null);
    if (in_array($value, $col)) {
        return array_search($value, $col);
    } else {
        return false;
    }
}

上記のコードは、array_column 関数を使用して、多次元配列全体のすべての要素の値を取得し、$col 変数に格納します。次に、in_array 関数を使用して、ターゲット値が $col 配列に存在するかどうかを確認します。見つかった場合は、array_search 関数を使用して、値が配置されているインデックスを返します。それ以外の場合は、false を返します。

  1. サードパーティ ライブラリの使用

PHP に付属の関数を使用することに加えて、サードパーティ ライブラリの関数を使用して多次元配列を処理することもできます。 。その中でも、jQuery の grep 関数は配列のフィルタリングや検索に使用できます。使用方法は次のとおりです:

function searchValue($arr, $value) {
    $result = null;
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            $result = searchValue($val, $value);
        } else if ($val === $value) {
            $result = $key;
        }
        if ($result) {
            break;
        }
    }
    return $result;
}

上記のコードは、再帰的メソッドを使用して多次元配列を走査し、jQuery の grep 関数を使用して、目標値。ターゲット値が見つかった場合は、値が配置されているインデックスを返し、それ以外の場合は null を返します。

概要

この記事では、PHP で多次元配列内の特定の値をクエリする方法を紹介します。これには、配列を走査するループの使用、PHP 独自の配列関数、および 3 番目の関数の使用が含まれます。パーティーライブラリ。これらの方法は、特定の状況に応じて選択して使用することで、最も効率的なクエリ結果を得ることができます。

以上が特定の値に対するPHP多次元配列クエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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