2012-03-22 91 views
-3

我有这样的代码:PHP排序结果

<ul> 
    <?php foreach($persons as $key) : ?> 
    <?php if($this->session->userdata('id_user') == $key['id_person']) : ?> 
    <li><em><?php echo $key['name'] . " " . $key['surname'] ?></em></li> 
    <?php else : ?> 
    <li><?php echo $key['name'] . " " . $key['surname'] ?></li> 
    <?php endif; ?> 
    <?php endforeach; ?> 
</ul> 

我怎样才能把从放在第一位的,如果条件的结果?我可以在这里做,否则我需要编写SQL查询?

编辑:

这是输出:

<ul> 
<li>Marko Džunić</li> 
<li><em>Saša Miljković</em></li> 
<li>mirko mirkovic</li> 
</ul> 

我想要得到这样的:

<ul> 
<li><em>Saša Miljković</em></li> 
<li>Marko Džunić</li> 
<li>mirko mirkovic</li> 
</ul> 
+0

赦免?这个问题没有意义。请出示你此刻的输出和你想要的输出。 – DaveRandom 2012-03-22 09:18:37

+0

我更新的问题。 – Sasha 2012-03-22 09:23:32

+0

如何你得到$者?你把它存储在数据库中吗?更多详情请 – 2012-03-22 10:15:05

回答

1
<ul> 
    <?php 
     $first = ''; 
     $content = ''; 
     $id_user = $this->session->userdata('id_user');  
    ?> 
    <?php foreach($persons as $key) : ?> 
    <?php 
     $id_person = $key['id_person']; 
     $name = $key['name']; 
     $surname = $key['surname']; 

     if ($id_user == $id_person)  
     {    
      $first = '<li><em>' . $name . ' ' . $surname . '</em></li>'; 
     } 
     else 
     { 
      $content .= '<li>' . $name . ' ' . $surname . '</li>'; 
     } 
    ?> 
    <?php endforeach; ?> 
    <?php echo $first, $content; ?> 
</ul> 
0

通过你的阵列的两倍。

  1. 您第一次只在个人是选定人员时回显,然后使用unset()从数组中删除此人。

  2. 通过你的阵列去第二次像你以前那样。

选定的项目现在处于列表中的第一项。

0

最好的办法是让从MySQL本身排序的结果。在MySQL中,您可以在顶部放置特定的行。