Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: group based array sort

by Limbic~Region (Chancellor)
on Feb 19, 2004 at 19:55 UTC ( #330335=note: print w/replies, xml ) Need Help??

in reply to group based array sort

I am pretty sure this is easier than it sounds. You have an AoH and want to sort it based off one of the hash values. Try the following code and see if it does what you want:
@list = sort { $a->{level} <=> $b->{level} } @list; # Print code goes here
Cheers - L~R

Update: After re-reading your problem I realized the issue is not in the sorting but in the printing, which I conveniently left out. Since a great solution has already been provided below, I will only point to my iterative solution by using a stack.

Replies are listed 'Best First'.
Re: Re: group based array sort
by benn (Vicar) on Feb 19, 2004 at 20:22 UTC
    bageler seems to be looking for something more complicated that that, I'm afraid - that would simply give
    foo ->bar ->narf -->trof -->etc.
    I don't know if this is possible without recursion...being lazy, I'd personally use a recursive "GetChildren($id)" routine which greps for the parent $id and pushes the returned list onto itself - terribly inefficient (as you'd be grepping the list for every element), but easier to code :)


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://330335]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2017-05-29 10:21 GMT
Find Nodes?
    Voting Booth?