PHP排序结果


PHP sorting results

我有这样的代码:

<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>

如何将if条件的结果放在第一位?我可以在这里做吗?或者我需要写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>
<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>

遍历您的数组两次。

  1. 第一次只在人员为选定人员时进行回显,然后使用unset()从数组中删除该人员。

  2. 像以前一样第二次遍历你的数组。

所选项目现在是列表中的第一个项目。

最好的方法是从Mysql本身获得排序结果。在MySQL中,您可以将特定的行放在顶部。