У меня есть следующие структуры хэшированного $chainStorage{$R1}{$S1}{$C1} = \@A1
петли через сложную структуру хэш
$chainStorage = {
'ACB' => {
'E' => {'06' => [100, 200, 95]}
'B' => {'23' => [20, 1000, 05, 30]}
},
'AFG' => {
'C' => { '24' => [18, 23, 2300, 3456]}
},
'HJK' => {
'A' => {'12' => [24, 25, 3200, 5668]}
'D' => {'15' => [168]}
}
};
Например, ACB
соответствует двум массивам, [100, 200, 95]
и [20, 1000, 05, 30]
в то время как E
соответствует только [100, 200, 95]
.
Прямо сейчас мне нужно добавить все элементы в массиве, соответствующие клавише первого уровня, например ACB
.
Другими словами, в другой хэш-структуры, я хочу ACB
соответствует
100+200+95 + 20+1000+05+30 = 1450
Как реализовать эту функцию через $chainStorage
?
Вы можете, очевидно, отвлечь функцию накопления '+ =', если хотите, чтобы ее легко заменить словами 'join',' .' и т. Д. –
Если ваша структура данных огромная, но неглубокая, то вы можете найти глубину первый поиск более эффективен. –