2

特定のキーが PHP の多次元配列に存在するかどうかに基づいて、TRUE または FALSE を返す関数が必要です。

このアクションを実行するための再帰関数を見つけることができませんでした。

これができることのサンプル:

$array = array(
    'key 1' => array(
        'key 1.1' => array()
        'key 1.2' => array()
    ),
    'key 2' => array(
        'key 2.1' => array(
            'key 2.1.1' => array()
        )
        'key 2.2' => array()
    )
);

multi_array_key_exists('key 1', $array); // return TRUE

multi_array_key_exists('key 2.1.1', $array); // return TRUE

multi_array_key_exists('key 3', $array); // return FALSE
4

2 に答える 2

6

ここで再帰関数が役に立ちます。

function multi_array_key_exists($key, array $array): bool
{
    if (array_key_exists($key, $array)) {
        return true;
    } else {
        foreach ($array as $nested) {
            if (is_array($nested) && multi_array_key_exists($key, $nested))
                return true;
        }
    }
    return false;
}

キーが存在するかどうかのみに関心があるため、これには時間がかかる場合があります (長いネストされた配列の場合)。最初に平坦化することをお勧めします。

于 2013-11-14T19:06:36.687 に答える