我的模型以mysql对象的形式返回数据:
return $q->result();
现在,我想对数据进行混洗/随机化,并将其发送到视图文件。但是当我在对象上使用shuffle($data)时,它不工作,给出一个错误。我想,只有当我的模型返回一个数组时,它才能工作。
有没有什么方法可以在不将数据转换为数组的情况下,或者不让模型返回数组的情况下,对数据进行混洗/随机化?
发布于 2011-06-15 14:02:53
在生成查询时,您是否考虑过添加$this->db->order_by('id', 'random');?第一个参数是字段名,第二个参数是顺序(可能的值是"asc“、"desc”和"random")。有关更多信息,请查看order_by函数。
编辑
或者,您可以使用result_array()而不是results()。下面是一个例子:
// PHP5
$shuffled_result = $this->db->get('table')->result_array();
shuffle($shuffled_result);
// PHP4
$query = $this->db->get('table');
$shuffled_result = $query->result_array();
shuffle($shuffled_result);发布于 2011-06-15 13:56:26
对象没有任何明确的属性顺序。如果需要排序,则应使用数组。
发布于 2011-06-15 14:07:34
让你的模型以数组的形式返回mysql数据(如果你不知道怎么做,请给我代码),然后你可以使用Shuffle function来混洗数组。
我不认为你可以用查询或其他什么方法来打乱数据库本身
https://stackoverflow.com/questions/6353626
复制相似问题