如何在rails 3中获得二维数组的行和列长度?

时间:2011-03-17 06:07:31

标签: arrays ruby-on-rails-3 multidimensional-array

有人可以告诉如何在rails 3中获取二维数组的行和列长度吗?

我的阵列是这样的:


 payroll = Array.new[Payroll.count][2]

当我们得到一维数组的长度时,我们确实喜欢

 array.length 
在二维数组中怎么样?

我想做类似的事情:


 payroll = Array.new[Payroll.count][2]

 for i in 0..payroll.row.length - 1
  for j in 0..1
   puts payroll[i][j]
  end
 end

我只是想知道正确的方法。请帮忙......

1 个答案:

答案 0 :(得分:5)

二维数组只是一个数组数组,因此只需使用payroll.length获取高度,payroll[0].length获取宽度(假设所有行的宽度相同)。以下是使用该想法的循环:

for i in 0..payroll.length - 1
  for j in 0..payroll[i].length - 1
    puts payroll[i][j]
  end
end

但循环数组的更简单方法是使用迭代器方法。在这里,我将for循环更改为each.with_index(如果您的Ruby不支持each_with_index,请使用each.with_index):

payroll.each.with_index do |row, i|
  row.each.with_index do |cell, j|
    puts payroll[i][j]
  end
end

现在我会让它更简单,因为我假设你根本不需要访问索引,只是数组中的各个元素:

payroll.each do |row|
  row.each do |cell|
    puts cell
  end
end