Проблема со значениями массива - PullRequest
0 голосов
/ 13 мая 2009

У меня проблема, когда подпрограмма (которую я не могу изменить) возвращает мне либо 3 вложенных массива, либо 2 вложенных массива. Значения ключей никогда не бывают одинаковыми, однако я бы хотел нормализовать вложенность, чтобы я мог каждый раз увеличивать глубину вложенного массива на 3 уровня, чтобы избежать ошибок «Notice: Undefined index:». Или, если возможно, запрограммируйте подсчет количества уровней в глубине массива, чтобы я мог соответствующим образом кодировать.

Ответы [ 3 ]

3 голосов
/ 13 мая 2009

Вы можете использовать isset (), чтобы определить, присутствует ли определенный уровень в массиве. Если нет, добавьте его.

1 голос
/ 13 мая 2009
function get_depth($arr) {
   foreach ( $arr as $arr2 ) {
     if ( is_array($arr2) ) {
       return 1+get_depth($arr2);
     }
     break;
   }
   return 1;
}
0 голосов
/ 13 мая 2009

Ну, этот ответ действительно будет зависеть от того, что вы делаете. Почему бы просто не проверить, существует ли вложенный массив?

if (isset($val[3][2])) {
  ....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...