将逗号分隔的字符串转换为2d数组

时间:2013-06-28 09:17:17

标签: ruby-on-rails ruby arrays

在这个问题上有一点大脑失败。我需要转换的数据是csv文件的列标题,我的方法是:

['1,2,3', 'a,b,c'] 

其中1,2和3是第一,第二和第三个标题行,因此它们需要从水平变为垂直。

我正在寻找的输出是:

[['1', 'a'], ['2', 'b'], ['3', 'c']]

每个内部数组现在都是一行标题,我可以遍历并添加到我的CSV中。

我事先不知道会有多少标题行,但它们将始终以逗号分隔,如第一个代码段中所示。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:4)

您需要Array#transpose。它,转换矩阵。

a = ['1,2,3', 'a,b,c'] 

a.map{|s| s.split(',')}.transpose # => [["1", "a"], ["2", "b"], ["3", "c"]]