1

我查看了其他示例并尝试使其工作,但对代码的修改仅返回错误。基本上,我有一个从我的数据库中提取并显示在 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>
4

1 回答 1

1

你可以用 MySQL 做到这一点sort_by name ASC,在 PHP 中你可以做到这一点:

  1. sort($this->categories, SORT_STRING)或 s ort($this->categories);
  2. ksort($this->categories)用键排序;
于 2012-11-03T12:46:35.870 回答