动态系统的Ruby循环

动态系统的Ruby循环,ruby,for-loop,pubmed,Ruby,For Loop,Pubmed,我是新来的,但我的问题很难解释,所以我会尽量简单。我必须制作一个搜索PubMed的程序。查询得到一组链接到文章的ID号,这些文章有附加的信息,比如它们是什么时候创建的,谁创建的,关键字等等。我必须按年份对它们进行排序,这是我能做到的。然后,我还必须按年份对mesh_标题(与文章相关的关键字)进行排序。但这些都必须计算在内。因此,它将输出如下内容: Number of Results: 15 2015: 11 --->MH1: 13 --->MH2: 5 --->MH3: 12

我是新来的,但我的问题很难解释,所以我会尽量简单。我必须制作一个搜索PubMed的程序。查询得到一组链接到文章的ID号,这些文章有附加的信息,比如它们是什么时候创建的,谁创建的,关键字等等。我必须按年份对它们进行排序,这是我能做到的。然后,我还必须按年份对mesh_标题(与文章相关的关键字)进行排序。但这些都必须计算在内。因此,它将输出如下内容:

Number of Results: 15
2015: 11
--->MH1: 13
--->MH2: 5
--->MH3: 12
2014: 3
--->MH1: 12
--->MH2: 3
ETC ETC ETC
我不知道如何按年份对mesh_标题进行排序。如果有什么想法,我很想听听。当我尝试执行下面代码中的循环时,它会询问创建的年份是否有可以放入的数组,如果没有,它将创建一个数组并将其推入。这给了我一个提示错误。提前谢谢

for i in 0..date_array2.size
date_hash.each {|key, value| puts "#{key} = #{value}"}
if "#{created_year}_array" == true
    puts "#{created_year}_array".class
    "#{created_year}_array".push(mesh_headings)
else    
    "#{created_year}_array" = Array.new(Array.new)
    "#{created_year}_array".push(mesh_headings)

end

结束

是的,这个代码唯一有效的方法就是你把
eval
撒在上面。但那就更糟了。如果你给我们看一些数据,我们可能会有更好的想法。正如@sergio所说,如果你给我们看一些数据,我们会更容易帮助你。。。我想到的一件事是使用哈希表,其中年份是关键。。。您可以执行如下操作:
index=Hash.new{h,k{h[k]=Array.new{Array.new}
。这将创建一个
索引
散列,当第一次使用密钥时,该散列将返回一个数组数组。