У меня есть массив с именем $ 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; ?>
Обратите внимание, что видимость с ошибкой, но это то, как в вашем вопросе