【发布时间】:2017-12-13 11:13:58
【问题描述】:
我有一个带有图像 ID 的字符串(从另一个 mysql 表中获取) 并转换为数组:
$idstring = "12, 18, 3, 392, 0, 9, 44";
$idarray = explode(',', $idstring);
基于这个 id 数组,我想从我的“媒体”mysql 表中获取所有行。
$result = $this->db->select('*')
->from('media')
->where_in('id', $ids)
->get()->result_array();
问题是$result 数组的值的顺序很奇怪,如下所示:
$result's order : 44, 9 ,0 ,18 ,3 ,392 ,12 ...
但我需要它们保持在我的 $id 字符串/数组顺序中...
到目前为止,我已经尝试了 4 种方法来解决这个问题:
在没有
where_in()的情况下循环获取行——这会产生很多查询——但现在可以使用......根据
$idstring或$idarray的顺序对$result数组重新排序,尽管我无法找到工作结果,我不明白为什么要执行此步骤完全有必要尝试修复查询本身。我听说过
ORDER_BY和FIND_IN_SET,$ids,但我无法将其放入我的工作代码点火器查询中,并且不知道性能是否真的有帮助
所以总而言之,我认为这应该是一项简单的日常任务,我只想用 codeigniter 按给定顺序获取一堆图片。
我在这里缺少一个简单的解决方案吗?
【问题讨论】:
标签: php mysql arrays codeigniter