Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP排序结果_Php_Codeigniter - Fatal编程技术网

PHP排序结果

PHP排序结果,php,codeigniter,Php,Codeigniter,我有这样的代码: <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><

我有这样的代码:

<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>
  • 萨沙·米利科维奇
  • 马尔科·杜尼奇
  • 米尔科·米尔科维奇

对阵列进行两次检查

  • 第一次仅在此人为所选人员时回显,然后使用unset()从数组中删除此人

  • 像以前一样再次检查阵列


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

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

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

    对不起?这个问题毫无意义。请显示您目前获得的输出和您想要的输出。如何获得$person?您是否将其存储在数据库中?请提供更多详细信息我会在控制器中进行一些排序/交换,而不是在模板层中尝试这样做。