我有一个嵌套的数字数组,排列如下:
ids = [[5,8,10],[8,7,25],[15,30,32],[10,8,7]]
Run Code Online (Sandbox Code Playgroud)
我只需要一个包含所有键的单个数组,而不重复,所以我使用了这个:
ids = ids.flatten.uniq
Run Code Online (Sandbox Code Playgroud)
这产生了这个:
ids = [5,8,10,7,25,15,30,32]
Run Code Online (Sandbox Code Playgroud)
自从我使用以来.uniq,它消除了重复的值.但是,我想根据它们出现在子数组中的频率来排序,而不是按顺序排列它们的顺序 - 所以像这样:
ids = [8,10,7,5,25,15,30,32]
Run Code Online (Sandbox Code Playgroud) 我有一个搜索表单,以随机顺序返回一个id数组,具体取决于哪个元素在搜索中有更多关键字.在索引中,它们按最小的id排序.
例如:
def search
ids = [13,8,2,4,7]
items.where("id in ?", ids)
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器的索引动作中我有类似的东西
@items = Items.search
Run Code Online (Sandbox Code Playgroud)
但是这些项目仍然按照[2,4,7,8,13]索引表中的顺序显示.
如何以我在搜索功能中查询的顺序显示项目?