Argh。试图解决如何在Ruby中构建数组时遇到问题。Ruby建立阵列
所以我循环遍历一个结果,我想添加类别字段作为键,并让它如此,如果下一行具有相同的类别它会被放入该类别。如果没有,它会创建一个新数组并将其添加到该数组中。
这是我到目前为止。
data = Array.new
results.each do |row|
data[row.category].push row.field
end
这是不会工作我知道。我想要data[row.category]
最终(在循环后)包含所有的row.field
的
所以我最终得到一个看起来像这样的数组。
[['Dogs', 5, 12, 2], ['Cats', 4, 5, 9], ['Fish', 25, 82, 23]]
所以不管有多少循环做的,如果我推到已经存在于数据的数组,然后它只是追加它,如果数组不存在,创建它,然后追加它。
在PHP中,我只想做到这一点:
$data[$row['category']][] = $row['field']
随着空[]表示创建一个新的数组,如果是没有的。我如何在Ruby中做到这一点?
嗨感谢您的快速回复,但结果如下:'{“category”=>“Sales”,“field”=> 5502.0}'我得到这个错误代码示例:'undefined method'category'for#哈希:0x007f84fb44e5d0>“有什么想法? –
@SolidPink:是的,只需使用'row ['category']'而不是'row.category'。 –
宾果!感谢那。那么为什么行['']而不是行。 ? –