LINUX.ORG.RU

Сортировка хеша

 


0

1

Как в цикле foreach произвести сортировку по значению ключа, который состоит из двух хешей

while ($ref = $sth->fetchrow_arrayref) {
$tree{$$ref[1]}{'parent'}=$$ref[2];
$tree{$$ref[1]}{'text'}= $$ref[0];
}

надо обработать от меньших 'parent' до больших.

foreach $key (sort keys %tree) {	
print $tree{$key}{'parent'}."\n";
}

★★★★★

facepalm. //называется 'я учу перл'
Документацию ты читать не собираешься что ли? Даже по встроенным функциям? Гуглить мы тоже не умеем, да?
Функция sort принимает первым аргументом процедуру. В которой ты и делай, что и как тебе надо сравнивать. Головой подумай, сделай 2 вложенных цикла, если уж по-другому никак.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 2)
Ответ на: комментарий от Bad_ptr

facepalm. //называется 'я учу перл'

это надежда нации. новое поколение, которое поднимет Россию с колен информационной кабалы.

Как в цикле foreach произвести сортировку по значению ключа, который состоит из двух хешей

если б не пример кода, я бы не понял о чём вообще речь. perldoc -f sort, как правильно подсказывают.

sort { $tree{$a}{parent} <=> $tree{$b}{parent} } keys %tree
pef-secure
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.