PHP: Чистый способ проверки, равно ли значение многомерного ассоциативного массива чему-либо - PullRequest
0 голосов
/ 20 января 2012

Я пытаюсь найти чистый способ проверки, является ли значение динамически определенного определенного значения. Он должен оценивать true, если эта переменная равна проверяемой переменной, false, если она не совпадает или переменная не существует, например ::100100

if($array[$with][$some][$depth]==$test)

Это будет оцениваться правильно, однако выдаст ошибку уведомления if $array[$with][$some][$depth] на самом деле не является переменной.

Я не могу сделать

if(array_key_exists($depth, $array[$with][$some]) && $array[$with][$some][$depth]==$test)

поскольку массив верхнего уровня может не существовать (может быть любое количество уровней)

1 Ответ

1 голос
/ 20 января 2012

Просто используйте isset в качестве охраны.Вам не нужно делать это шаг за шагом:

if(!isset($array[$with][$some][$depth]) || $array[$with][$some][$depth]!=$test) {
    // either does not exist, or has other value
}

Единственный недостаток здесь заключается в том, что если значение, с которым вы хотите проверить, равно null, isset вернет falseчто не то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...