Ковыряясь с руби нашел некоторую странность при переборе элементов многомерного массива. Следующий код:
array = Array.new
array[0] = ["123","456","789"]
array[1] = ["abc","dfg","hjk"]
array.each do |key, val|
p "{#{key}} =>"
val.each do |val2|
p val2
end
end
ruby array_test.rb
"{123} =>"
"456"
"{abc} =>"
"dfg"
Для сравнения вариант для php:
$array[0] = array ("123", "456", "789");
$array[1] = array ("abc", "dfg", "hjk");
foreach ($array as $key => $val) {
echo "{".$key."} => \n";
foreach ($val as $val2) {
echo $val2."\n";
}
}
php array_test.php
{0} =>
123
456
789
{1} =>
abc
dfg
hjk
Вопрос: Где я ошибся? Почему руби выдает такой странный результат?
UPD: попробовал вариант с циклом for, всё идеально (но некрасиво):
array = Array.new
array[0] = ["123","456","789"]
array[1] = ["abc","dfg","hjk"]
for i in 0..array.size-1
p "{#{i}} => "
for j in 0..array[i].size-1
p array[i][j]
end
end
ruby array_test.rb
"{0} => "
"123"
"456"
"789"
"{1} => "
"abc"
"dfg"
"hjk"