Thread Array of Hash nach Hashvalue sortieren (12 answers)
Opened by jemand at 2005-11-20 11:56

jemand
 2005-11-20 11:56
#60254 #60254
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich habe ein Array of Hash(bzw. Array of Reference to Hash), das ich nach den Werten eines bestimmten Hashkeys sortieren möchte.

Also mehr oder weniger:

@array = ({foo => 'erde',
bar => 'himmel'
},
{foo => 'wasser',
bar => 'luft'
},
{foo => 'blubb',
bar => 'bla'
}
);

Nach den Values von foo sortiert soll hier dann rauskommen:

@neues_array = ({foo => 'blubb',
bar => 'bla'
},
{foo => 'erde',
bar => 'himmel'
},
{foo => 'wasser',
bar => 'luft'
}
);

Natürlich hab ich mir schon selbst Gedanken gemacht bevor ich euch hier bemüh:
Ich könnte die Werte von foo in ein Array schmeißen sortieren, dann dieses Array durchlaufen lassen und und jeweils schauen lassen in welchem Hash die Value mit dem Arraywert übereinstimmt.

Da dies jedoch sehr kompliziert ist und wohl auch viel Zeit brauchen würde, wollte ich mal wissen ob das auch einfacher geht.
Ich dachte da so an eine eigene Sub für sort. Mein Problem dabei war aber, dass ich keine Ahnung habe, wie ich sort sage, dass es in das Array, das es zurückgibt, jeweils das ganze Hash tun soll und nicht nur die Value von foo.

Gruß Jemand

PS: Kann es sein, dass die Suchfunktion leicht kaputt ist?? Zumindest funktioniert das boolische UND nicht richtig.
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;

View full thread Array of Hash nach Hashvalue sortieren