PHP массив справки. Получение правильного контента - PullRequest
0 голосов
/ 26 апреля 2009

У меня есть такой массив:

Array
(
    [level] => Array
        (
            [0] => Array
                (
                    [lvlName] => name
                    [lvlEnt] => ent
                )

        )

    [title] => Array
        (
            [0] => Array
                (
                    [title] => a title
                    [titleDesc] => desc here
                )

        )

    [navBar] => Products
    [pageContent] => About
)

Может кто-нибудь подскажите, пожалуйста, как получить содержание страницы?

Вот код, который я использую, но я получаю неопределенные индексы. Я понятия не имею, где я иду не так.

foreach($bigArr as $key=>$val)
{
  if($key['pageContent'] != null)
  {
    foreach($val as $fkey=>$fval)
    {
      echo $fkey['pageContent'];
    }
  }
}

Петли дают мне:

PHP Notice:  Undefined index:  pageContent
PHP Warning:  Invalid argument supplied for foreach()

Может кто-нибудь помочь мне с этим? Спасибо

EDIT: Неверный аргумент вызывает у меня недоумение.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2009

Ваш первый вызов foreach дает вам две части данных за итерацию: ключ и значение. Ключ - это строка, а не массив (это то, что вы пытаетесь использовать, как в строке 3.

Таким образом, на последней итерации для этого массива $key будет содержать 'pageContent', а $val будет содержать 'About'

В любом случае использование foreach для того, что вы делаете, кажется ненужным. Вы можете напрямую проверить, присутствует ли ключ «pageContent» в массиве, используя array_key_exists(), а затем вытянуть значение прямо.

if(array_key_exists('pageContent', $bigArr) && $bigArr['pageContent'] != null)
{
    echo $bigArr['pageContent'];
}
2 голосов
/ 26 апреля 2009

Вы можете получить доступ к значению с помощью $bigArr['pageContent'].

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