-4

以下のような配列内に Ruby 配列があります。

詳細なデータ情報はこちらhttps://gist.github.com/theCrab/6064789

列ヘッダーは、stylecolorsizedesc、 qty 、min_qtyreq_qtyroot_skuoffset_sizeです。

[
["UD/BOYS-TR/SENIOR/STANDARD"、"*BLACK/2SHORT LEG"、"28\"W"、"29\"LEG STD MENS TROUSER"、-10、4、14、"00001955"、1 ]、
["UD/BOYS-TR/SENIOR/STANDARD"、"*BLACK/2SHORT LEG"、"30\" W"、"29\"LEG STD MENS TROUSER"、-14、6、20、"00001955"、2 ]、
["UD/BOYS-TR/SENIOR/STANDARD"、"*BLACK/2SHORT LEG"、"32\"W"、"29\"LEG STD MENS TROUSER"、-29、6、35、"00001955"、3 ]、
["UD/BOYS-TR/SENIOR/STANDARD", "*BLACK/3REG LEG", "28\" W", "31\"LEG STD MENS TROUSER", 0, 3, 3, "00001976", 1] 、
["UD/BOYS-TR/SENIOR/STANDARD"、"*BLACK/3REG LEG"、"30\" W"、"31\"LEG STD MENS TROUSER"、-12、5、17、"00001976"、2 ]、
["UD/BOYS-TR/SENIOR/STANDARD"、"*BLACK/3REG LEG"、"32\" W"、"31\"LEG STD MENS TROUSER"、-6、6、12、"00001976"、3 ]
]

以下のようなきれいにフォーマットされたテーブルを印刷したい:

style | colour | size | desc | qty | min_qty | req_qty | root_sku
-----------------------------------------------------------------
standd| red    | 28 W | N/a  | 4   | 5       | 1       | 00001955
      |        | 30 W | N/a  | 9   | 5       | 4       | 00001955
      |        | 36 W | N/a  | 10  | 5       | 5       | 00001955
      | blue   | 28 W | N/a  | 4   | 5       | 1       | 00001955
      |        | 30 W | N/a  | 9   | 5       | 4       | 00001955
      |        | 36 W | N/a  | 10  | 5       | 5       | 00001955
fitted| red/blu| 28 W | N/a  | 4   | 5       | 1       | 00001954
      |        | 30 W | N/a  | 9   | 5       | 4       | 00001954
      |        | 36 W | N/a  | 10  | 5       | 5       | 00001954
      | blue   | 28 W | N/a  | 4   | 5       | 1       | 00001954
      |        | 30 W | N/a  | 9   | 5       | 4       | 00001954
      |        | 36 W | N/a  | 10  | 5       | 5       | 00001954

どうすればアレイを駆け抜けてこの偉業を成し遂げることができますか?

4

1 に答える 1

2

Ruby には、古い C スタイルの関数から派生したと思われる文字列フォーマット機能がありsprintfます。http://www.ruby-doc.org/core-2.0/Kernel.html#method-i-sprintfおよびhttp://ruby-doc.org/core-2.0/String.html#method-i-25

String クラスでは、%メソッドを使用して配列を渡します。

outer_array.each do |inner_array|
  puts ('%6s|%8s|%5s|%6s|%4d|%8d|%6d|%10d' % inner_array)
end

(PSフォーマットについて推測しただけなので、必要に応じて調整する必要があります)

于 2013-07-24T14:29:47.063 に答える