php - PHP对象数组中的分组/排序项目
问题描述
我有一个站点地图,我正在尝试按 URL 分组并根据 URL 堆叠它们。这是站点地图https://www.sitecentre.com.au/sitemap
基本上,我需要它是动态的。我可以通过做一个案例或 if 语句来轻松做到这一点,就像我在博客部分所做的那样,但我需要它是动态的。它需要看起来像这样:
<li>Web Design
<ul>
<li>Nested in Web Design</li>
<li>Nested in Web Design</li>
</ul>
</li>
全部基于 URL。URL 是 /design 然后嵌套是 design/nested
然后下一组就像品牌化并嵌套在品牌化上,因此它的所有组织和布局都完美无缺,然后根据其他内容按字母顺序排列。
这是我们当前的 PHP:
<?php
$pages = json_decode(file_get_contents('data/pages.json'));
foreach ($pages as $data){
foreach ($data as $key => $values){
if ($values->status === '1' && $values->visible === '1' && $values->slug !== 'home'){
if ($values->slug !== 'blog'){
echo '<li><a href="{{domain}}/' . $values->slug . '" title="' . $values->heading . '">' . $values->heading . '</a> - Last Updated: ' . date('d/m/Y', strtotime($values->date_modified)) . '</li>';
} else {
// Get the latest blogs
$blogs = json_decode(file_get_contents('data/blogs.json'));
echo '<li><a href="{{domain}}/' . $values->slug . '" title="' . $values->heading . '">' . $values->heading . '</a> - Last Updated: ' . date('d/m/Y', strtotime($values->date_modified)) . '';
echo '<ul>';
foreach ($blogs as $data){
foreach ($data as $key => $values){
if ($values->status === '1' && $values->visible === '1'){
echo '<li><a href="{{domain}}/' . $values->slug . '" title="' . $values->heading . '">' . $values->heading . '</a> - Last Updated: ' . date('d/m/Y', strtotime($values->date_modified)) . '</li>';
}
}
}
echo '</li></ul>';
}
}
}
}
?>
为了完成这项工作,显然需要做一些工作,但我一生都无法确定从哪里开始。
解决方案
推荐阅读
- javascript - Discord.js 一个音乐循环
- .htaccess - 检查 htaccess %{HTTP_REFERER} 是存在还是为空?
- redis - 如何使用纯 Redis 原子地删除数百万个匹配模式的键?
- vue.js - 从 VueJS Boostrap 组件中移除 CSS 类
- java - 如何在 ToolBar Spinner 中设置所选项目的背景颜色。不是普通的微调器
- arrays - 按属性排序数组而不使用第一个对象
- ios - 调用“停止”功能时,如何逐渐减慢计时器的速度?
- python - Django rest框架不正确的嵌套序列化
- marklogic - 不显示在 MarkLogic 上创建的集合以在 Geoserver 中创建图层
- reactjs - 如何在通用 React / React Native 项目中用玩笑收集覆盖率