如何在foreach循环中命令我的查询结果?

时间:2014-09-28 04:42:11

标签: php mysql

这是已按点排序的查询:

$data['users'] = $this->db->select( array( 'users_avatar', 'users_teams_id', 'users_id', 'users_name', 'users_win', 'users_lose', 'users_points', 'daily_points' ) )->order_by( 'daily_points', 'desc' )->limit( 26 )->get( 'users' )->result();

因此,它在按点显示顶级用户时正常工作,但是如果顶级用户具有相同的点,则他们看起来非常奇怪。我想确保至少前3位用户,如果相同的点显示它们降序名称,但似乎必须在foreach循环中完成,我不知道如何正确地做到这一点。下面是显示代码:(前3名用户根据第1,第2和第3名出现奖牌,这就是为什么它与div相似)

       <div class="dailyleft" id="teams_inner">
            <div id="teams_for_scroll">
            <?
                $i = 1;
        sort($i);
                foreach($users as $user)
                {
                    echo '
                <div class="row">'.(


                    (($i == '1')?'<div class="num_1"></div>':'').
                    (($i == '2')?'<div class="num_2"></div>':'').
                    (($i == '3')?'<div class="num_3"></div>':'').
                    (($i > '3')?'<div class="num">'.$i.'</div>':'')


                    ).'<img src="'.base_url().'public/uploads/t_'.$user->users_avatar.'" />
                    <div class="title" style="width:400px;">'.($user->users_teams_id?'<a class="team_link" href="'.site_url('teams/view/'.$user->users_teams_id).'">['.$user_teams[$user->users_teams_id].']</a>':'').' '.htmlspecialchars($user->users_name, ENT_QUOTES).'</div>
                    <div class="points" style="width:150px;"><span>Daily Points</span><font color="orange">'.number_format($user->daily_points, 0, ' ', ' ').'</font></div>
                    <div class="points" style="width:230px;"><span>All Time Win/ Lose</span>'.number_format($user->users_win, 0, ' ', ' ').' / '.number_format($user->users_lose, 0, ' ', ' ').'</div>
                </div>
                    ';
                    $i++;
                }
            ?>
            </div>
       </div>

2 个答案:

答案 0 :(得分:0)

您可能希望在初始$data['users']数组中使用usort。写一个比较器,使用您需要关注的值,然后离开。

答案 1 :(得分:0)

在PHP中,您可以使用usort()函数声明排序函数。

你可以看到这篇文章:Sort Multi-dimensional Array by Value

这里是PHP参考:http://php.net/manual/en/function.usort.php