首页 > 解决方案 > 如何在不与 sql 查询混合的情况下从数组中获取所有值?

问题描述

我有一个数组调用 newArray();

$values = array_count_values($books);

arsort($values);

$newArray = array_keys($values);

它有如下数据

Array ( [0] => 37 [1] => 31 [2] => 29 [3] => 28 [4] => 20 [5] => 26 [6] => 34 [7] => 30 [8] => 25 )

我如何获得该数组中的前 5 个索引以及如何为这些剩余值编写查询

例如

[0]=>37 从这里

从书籍表中获取 id 等于 37 的书籍

请帮助我,任何事情都会有帮助

编辑

数组有这样的值

Array ( [0] => 37 [1] => 31 [2] => 29 [3] => 28 [4] => 20 [5] => 26 [6] => 34 [7] => 30 [8] => 25 )

功能如下

if(!empty($books)) {    

            $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');

            print_r($result);
            return $result->result_array();
}

$result 没有得到我需要的东西 我做错了什么?

标签: phpsqlarrayscodeigniter

解决方案


试用array_slice()功能:

// it will get 5 values from $books, starting from 0 offset (first position)
$values = array_count_values(array_slice($books, 0, 5));

推荐阅读