PHP 对象数组中的分组/排序项目

时间:2021-05-04 23:49:28

标签: php arrays json

我有一个站点地图,我正在尝试按 URL 对其进行分组并根据 URL 将它们堆叠起来。这是站点地图 https://www.sitecentre.com.au/sitemap

基本上,我需要它是动态的。我可以通过做一个 case 或 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>';
                }
            }
        }
    }
?>

显然需要做一些工作才能完成这项工作,但我一生都无法弄清楚从哪里开始。

0 个答案:

没有答案