按字母顺序打印数组

时间:2012-07-12 17:27:09

标签: php

嗨我从模板中获得以下代码。

<ul class="sub-categories">
    <?php

        foreach ($category->getChildren() as $child) {
            if (!$child->totalItemCount()) continue;
            $link = $this->app->route->category($child);
            $item_count = ($this->params->get('template.show_sub_categories_item_count')) ? ' <span>('.$child->totalItemCount().')</span>' : '';
            echo '<li><a href="'.$link.'" title="'.$child->name.'">'.$child->name.'</a>'.$item_count.'</li>';
        }

    ?>
</ul>

我想对子类别项目进行排序(这些项目是在州代码中进一步细分的城市。

我以为我可以按以下数组排序$ category-&gt; getChildren()但它不起作用。所以我对它做了一个回音,它说数组,所以我在那个数组上做了var_dump并得到了一个bool(true)。当我尝试输出它的其他方式(print_r)时,它崩溃了页面。

我不太了解数组,所以有人可以解释这个数组不是数组吗?我该如何对城市名单进行排序?

谢谢!

1 个答案:

答案 0 :(得分:1)

我真的不明白尝试打印数组的问题是什么,但我认为定义一个usort()这样的自定义排序就像你要找的那样:

<?php

function compareChildren ($a, $b) {
    return strcmp($a->name, $b->name);
}

$children = $category->getChildren();
usort($children, 'compareChildren');

foreach ($children as $child) {
    // ...
}

这是working example on codepad