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>
- 萨沙·米利科维奇
- 马尔科·杜尼奇
- 米尔科·米尔科维奇
对阵列进行两次检查
所选项目现在是列表中的第一项。最好的方法是从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?您是否将其存储在数据库中?请提供更多详细信息我会在控制器中进行一些排序/交换,而不是在模板层中尝试这样做。