为什么无法从CodeIgniter中的数据库获得预期结果?

时间:2018-11-07 05:00:53

标签: php sql arrays codeigniter

我的模特如下

            $values = array_count_values($books);

            arsort($values);

            $newArray = array_keys($values);

            $views_books_array = array_slice($newArray, 0, 5);

            $result = $this->db->where_in('book_id',$views_books_array)->get('books');

            return $result->result_array();

新数组如下所示

数组([0] => 37 [1] => 28 [2] => 31 [3] => 30 [4] => 38)

但是当我获取数据时,它将随机从我提供的数据中获取数据

im将book_id传递给模型和控制器 我的控制器如下所示,

$ data ['result'] = $ this-> Book_Model-> get_viewed_books($ book_id);

如果我的print_r结果会像

Array([0] => 28 [1] => 30 [2] => 31 [3] => 37 [4] => 38)

那样,但是我想要根据newArray的数据,我做错了什么

请帮助我解决所有问题

2 个答案:

答案 0 :(得分:-1)

我并没有真正理解您想做什么,但是如果您想获得有序的结果,则可以使用以下方法:

$this->db->order_by('column', 'order');

第二个参数可以是:“ ASC”或“ DESC”。 检查代码点火器manual

答案 1 :(得分:-1)

以下是直接从手册中摘录并适合您的情况的示例:

<?php
$numbers = array(4, 6, 2, 22, 11); 
sort($numbers);

$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
  echo $numbers[$x];
  echo "<br>";
}

?>

您还可以通过查询定义此示例:

$this->db->order_by('column_name', 'ASC');