Intereting Posts
Как добавить подстановочные имена в поиск каталогов в php В PHP, какие различия между NULL и установкой строки равны двум одинарным кавычкам Fatal error: Uncaught CurlException: 26: не удалось открыть файл "" Могу ли я установить порядок по умолчанию в классе Table на cakephp3 Запустить php-скрипт из командной строки с переменной Проверьте, находится ли Google Map Point в полигоне с PHP Что такое имя для шаблона, в котором он получает данные или запрашивает данные и возвращает обратно объект? добавить новый элемент в объект коллекции laravel Установка php-модуля с использованием порта на osx lion. Он работает из командной строки, но не из apache изменить файл xml через php-форму Триггер не распознает таблицу (Trigger для разбиения содержимого NEW.values ​​на несколько строк для вставки в другую таблицу) Существуют ли какие-либо существенные причины для использования isset () над @ в php PHP mail () – почта не отправляется Проверьте, скомпилирован ли PHP –with-mysql Преобразование MYSQL Polygon в текст в PHP

цикл через массив объектов

У меня есть массив с именем $ pages content:

Array ( [01-about-us] => Page Object ( [_uri] => about-us [_menuItem] => 01 [_visable] => 1 ) [02-contact] => Page Object ( [_uri] => contact [_menuItem] => 02 [_visable] => 1 ) [_sitemap] => Page Object ( [_uri] => sitemap [_menuItem] => [_visable] => ) [home] => Page Object ( [_uri] => home [_menuItem] => [_visable] => 1 ) ) 

есть простой способ прокрутки и получения объектов страницы с помощью свойств, то есть:

 <?php foreach($pages->_visible() AS $p): ?> <li> page </li> <?php endforeach ?> 

Нет. Вам нужно будет использовать if :

 foreach ($pages as $page) { if ($page->_visible == 1) { echo "<li>page</li>"; } } 

(Обратите внимание, что вы тоже заметили в массиве, возможно, опечатку?)

Или вы можете использовать функцию array_filter PHP:

 $pagesVisible = array_filter($pages, function($page) { return (bool) $page->_visible; }); foreach ($pagesVisible as $key => $page) { print '<li>' . $key . '</li>'; } 

Или сократите это до:

 $filter = function($page) { return (bool) $page->_visible; }; foreach (array_filter($pages, $filter) as $key => $page) { print '<li>' . $key . '</li>'; } 

Вам просто нужно пройти через массив страниц и внутри цикла получить доступ к свойствам объекта, например:

 <?php foreach($pages as $k => $p): ?> <?php if ($p->_visable === 1): ?> <li><?php echo $k; ?></li> <?php endif; ?> <?php endforeach; ?> 

Обратите внимание, что видимость с ошибкой, но это то, как в вашем вопросе