ホームページ  >  記事  >  バックエンド開発  >  PHPで配列内の複数の値を検索し、対応するキー名を返す方法

PHPで配列内の複数の値を検索し、対応するキー名を返す方法

王林
王林オリジナル
2023-07-08 08:48:091094ブラウズ

配列内の複数の値を見つけて、PHP で対応するキー名を返す方法

PHP 開発では、配列内の複数の値を見つけてそのキーを見つける必要があることがよくあります。対応する値名の状況。この記事では、この機能を実現する方法と、対応するコード例を紹介します。

まず、探している配列の構造を見てみましょう。ユーザー名、年齢、性別などのユーザー情報を格納する連想配列があるとします。例は次のとおりです:

$user_info = array(
    'john' => array(
        'age' => 25,
        'gender' => 'male'
    ),
    'amy' => array(
        'age' => 32,
        'gender' => 'female'
    ),
    'peter' => array(
        'age' => 28,
        'gender' => 'male'
    ),
    'susan' => array(
        'age' => 30,
        'gender' => 'female'
    )
);

さて、年齢が 32 歳、性別が女性のユーザーを検索する必要があるとします。ユーザーのキー名「amy」を取得したいと考えています。 。この関数を実装するコード例を次に示します。

function searchUser($array, $conditions) {
    foreach ($array as $key => $value) {
        $match = 0;
        foreach ($conditions as $condition_key => $condition_value) {
            if ($value[$condition_key] == $condition_value) {
                $match++;
            }
        }
        if ($match == count($conditions)) {
            return $key;
        }
    }
    return null;
}

$conditions = array(
    'age' => 32,
    'gender' => 'female'
);

$result = searchUser($user_info, $conditions);

if ($result) {
    echo "找到匹配的用户,键名为:" . $result;
} else {
    echo "未找到匹配的用户";
}

上記のコードでは、searchUser という名前の関数を定義します。この関数は、検索対象の配列と検索条件の 2 つのパラメーターを受け取ります。 。

関数内では、2 レベルのネストされたループを使用します。外側のループは配列の各要素を調べ、内側のループは検索条件配列の各条件を調べます。

内側のループでは、配列内の対応するキーの値が現在の検索条件と等しいかどうかを比較します。それらが等しい場合、カウンター $match の値をインクリメントします。 $match の値が検索条件配列の長さと等しい場合、すべての条件が一致したことを意味し、現在のループのキー名を返します。

一致するユーザーが見つからない場合は、最終的に null を返します。

メイン プログラムでは、検索条件の配列 $conditions を定義し、searchUser 関数を呼び出して一致するユーザーを検索します。最後に、返された結果に基づいて、対応するプロンプト情報を出力します。

上記のコード例を通じて、配列内の複数の値を検索し、対応するキー名を返す関数を実現できます。

概要:
PHP 開発では、配列内の複数の値を検索し、対応するキー名を返す必要がある場合があります。二重ループと適切な判定条件を使用することで、この機能を実現できます。上記のコード例は、参照および使用できる実装メソッドを提供します。この記事が PHP 配列検索の皆様のお役に立てれば幸いです。

以上がPHPで配列内の複数の値を検索し、対応するキー名を返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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