根据特定值重新排列数组

斯内哈

我正在尝试通过以下代码从数据库中获取值

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章