我正在尝试通过以下代码从数据库中获取值
public function get_value($userid)
{
$this->db->select("*");
$this->db->from("users");
$this->db->order_by("id", "desc");
$query = $this->db->get();
$r1 = $query->result();
echo "<pre>";
print_r($r1);
echo "</pre>";
}
我得到以下数组
Array
(
[0] => stdClass Object
(
[id] => 3
[fullname] => user 3
)
[1] => stdClass Object
(
[id] => 4
[fullname] => User 4
)
[2] => stdClass Object
(
[id] => 5
[fullname] => User 5
)
[3] => stdClass Object
(
[id] => 6
[fullname] => User 6
)
)
我希望以一种方式重新排列数组,如果“$userid”与数组中的“id”匹配,则该值应位于第一个位置
例如,如果 $userid = 5,则数组应如下所示
Array
(
[0] => stdClass Object
(
[id] => 5
[fullname] => User 5
)
[1] => stdClass Object
(
[id] => 3
[fullname] => user 3
)
[2] => stdClass Object
(
[id] => 4
[fullname] => User 4
)
[3] => stdClass Object
(
[id] => 6
[fullname] => User 6
)
)
谁能告诉我怎么做
我认为您可以从“按字段订购”中查看。就像是 :
select * from users order by field(id,5) desc, id desc
它将首先按字段排序,然后按 id desc 排序。你不需要把每个值都放在 field(id,?,?,?...) 中,你只需要把你想要的field(id,5)
https://www.electrictoolbox.com/mysql-order-specific-field-values/
在您的情况下,这应该如下所示:
$this->db->order_by("field(id,".$userid.")", "desc");
$this->db->order_by("id", "desc");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句