Mailinglisten-Archive |
Hallo Thomas, Thomas Winter wrote: > ich erzeuge ein array: > $boxinfo[$durchwahl][$value][$svalue[0]] = $svalue[1]; > Wie kann ich das einfach nach $durchwahl, $svalue[0] sortieren? > einfach asort auf das array geht ja wohl nicht. > Muss ich es auseinander nehmen und dann wieder zusammenbauen? Von mir erstmal wieder die kritische Frage: Bist du auf diese Struktur festgelegt, eignet sie sich wirklich oder lässt sich sich ggf für einen Zweck optimieren? Müssen die Werte zu Durchwahl, Value, sValue0 und sValue1 wirklich so verschachtelt sein oder kann man das nicht flacher abbilden? Dann könnte man array_multisort einsetzen. Vielleicht zeigst du uns nochmal am konkreten Beispiel, wie das Array aussehen könnte. Weil gerade diese $svalue[0] und $svalue[1] sind ja im Endeffekt konkrete Werte, die im Array stehen. Und diesen solltest du vielleicht noch etwas sprechendere Namen geben. Als direkte Lösung für deine aktuelle Struktur fallen mir je Sortierkriterium 1 Vorgang, also insgesamt 2 Vorgänge ein. Ebenfalls vorausgesetzt, dass ich richtig verstanden habe, was du erreichen willst. 1. ksort($boxinfo) Damit sind die Durchwahlen innerhalb von Boxinfo schonmal in der gewünschten (hoffentlich numerisch aufsteigenden) Reihenfolge. 2. foreach ( $boxinfo as $durchwahl => $values ) { foreach ( $values as $value => $svalues0 ) { ksort($svalues0); // überschreibe im originalen array an der gleichen // position mit dem nun sortierten array $boxinfo[$durchwahl][$values] = $svalues0; } } regards, Ringo
php::bar PHP Wiki - Listenarchive