Để sắp xếp kết quả theo thứ tự trong mảng của bạn, bạn có thể làm như sau:
$array_of_ordered_ids = array(4,5,2,6);
Như bạn đã biết thứ tự của các con số, bạn có thể sử dụng Mysql FIELD()
chức năng:
ORDER BY FIELD(id, 4, 5, 2, 6);
Để tạo một chuỗi như vậy, bạn có thể sử dụng implode
:
$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
Hãy thử:
$array_of_ordered_ids = array(4,5,2,6);
$this->db->where_in('id', $array_of_ordered_ids);
$order = sprintf('FIELD(id, %s)', implode(', ', $array_of_ordered_ids));
$this->db->order_by($order);