排序CSV列的值

问题描述:

我的CSV文件看起来像排序CSV列的值

Name,Value1,Value2,Value3 
bbb,1,3,4 
aaa,5,1,7 
ccc,2,2,5 

有没有办法通过Value1例如排序?
这样的结果将是

BBB,1,3,4
CCC,2,2,5
AAA,5,1,7

我发现SmarterCSV,所以我能够很容易地做到:

array_of_hashes = SmarterCSV.process('file.csv') 
array_of_hashes.sort_by! { |hsh| hsh[:value1] } 

如果要存储的所有数组中的值或散列可以使用Enumerable#sort

sort_index = 1 # or Hash Key "Value1" 
values.sort { |a, b| a[sort_index] <=> b[sort_index] } 

注意:不使用砰砰声!这将返回排序列表。如果你想要它改变它在使用#sort!