如何使用php按字母顺序对此类别列表进行排序?

时间:2012-11-03 12:38:07

标签: php database list sorting alphabetical

我已经查看了其他示例并尝试使其工作,但对代码的修改仅返回错误。基本上,我有一个从我的数据库中提取并显示在2列上的类别列表。我希望按照字母顺序列出第1列中列表的前半部分和第2列中的后半部分。我假设只是按字母顺序列出它们会自动将它们显示在我想要的类别中。谢谢你的帮助。我的代码是:

<ul class="links">
            <?php if($this->is_loged) { ?>
            <li><a href="./"><strong><?php echo $this->translate('Pinners you follow');?></strong></a></li>
            <?php } ?>
            <?php if($this->categories) { ?>
            <li>
                <a class="arrow" href="<?php echo $this->all_url;?>"><?php echo $this->translate('Everything');?><?php if($this->category_active) { ?>: <?php echo $this->category_active;?><?php } ?></a>
                <div class="dropdown columns-2">
                    <?php $total = count($this->categories); ?>
                    <?php for($r=$i=0; $i<2; $i++) { ?>
                    <ul>
                        <?php for($j=0; $j<ceil( $total/2 ); $j++, $r++) { ?>
                        <?php if(isset($this->categories[$r])) { ?>
                        <?php 
                            $class = $this->categories[$r]['active'] ? 'active' : '';
                            if($r==0 || ceil( $total/2 ) == $r) { $class .= ' first'; }
                            if($r==($total-1) || (ceil( $total/2 )-1) == $r) { $class .= ' last'; }
                            $class = trim($class);
                        ?>
                        <li<?php if($class) {?> class="<?php echo $class;?>"<?php } ?>><a href="<?php echo $this->categories[$r]['href'];?>"><?php echo $this->categories[$r]['title'];?></a></li>
                        <?php } ?>
                        <?php } ?>
                    </ul>
                    <?php } ?>
                    <div class="clear"></div>
                </div>
            </li>
            <?php } ?></ul>

1 个答案:

答案 0 :(得分:1)

您可以使用MySQL sort_by name ASC执行此操作,在PHP中可以执行以下操作:

  1. sort($this->categories, SORT_STRING)或s ort($this->categories);
  2. ksort($this->categories)按键排序;