2012-03-22 123 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中,您可以在頂部放置特定的行。