行をIDで配列に解析するにはどうすればよいですか?
例:
id | name | descritption
---------------------------
1 | eg1 | dummytext1
1 | eg2 | dummytext2
2 | eg3 | dummytext3
2 | eg4 | dummytext4
質問の例、ID が 2 の行を配列に解析するにはどうすればよいですか?
行をIDで配列に解析するにはどうすればよいですか?
例:
id | name | descritption
---------------------------
1 | eg1 | dummytext1
1 | eg2 | dummytext2
2 | eg3 | dummytext3
2 | eg4 | dummytext4
質問の例、ID が 2 の行を配列に解析するにはどうすればよいですか?
result = Hash.new { |h,k| h[k] = Hash.new { |j,l| j[l] = [] } }
FasterCSV.foreach( "yourfile.csv", :headers=>true, :header_converters=>:symbol ) do |line|
if line[:id] == 2
result[:id][:name] << line[:name]
result[:id][:descritption] << line[:descritption]
end
end
このコードはテストされていないことに注意してください。
CSVライブラリに関するドキュメントはこちら