Mailinglisten-Archive |
Hi Ringo, Am Freitag, 29. September 2006 01:02 schrieb Ringo Großer: > und gleich noch eine Array-Sortier-Frage hinterher: > > Gibt es so etwas wie array_multiksort? Diese > Funktion gibt es laut Manual nicht, wenn ich sie nicht > übersehen habe. nein. Aber in Deinen Fall ist das auch nicht nötig. Deine assoziativen Schlüssel sind ja Zeichenketten und dazu steht im Online-Handbuch: "Assoziative (string) Schlüssel werden beibehalten, aber numerische Schlüssel werden neu nummeriert." > Ich möchte gern das folgende Array nach dem > Werten des Schlüssels "price" aufsteigend sortieren: > > $cars = array( > 'BMW' => array( > 'color' => 'black', > 'year' => '2005', > 'price' => '22.000', > ), > 'Audi' => array( > 'color' => 'blue', > 'year' => '2004', > 'price' => '31.000', > ), > 'Renault' => array( > 'color' => 'silver', > 'year' => '2006', > 'price' => '11.000', > ), > ); > > Dazu nehm ich normalerweise array_multisort > > $prices = array(); > foreach ( $cars as $made => $properties ) { > $prices[] = $properties['price']; > } > array_multisort($prices, SORT_ASC, $cars); > > mit dem Effekt, dass er mir die assoziativen Keys in > $cars löscht, um sie durch die sortierten Indexe zu > ersetzen. Hm, merkwürdig. Liegt es vielleicht an der PHP-Version. Bei mir funktioniert das mit PHP 5.1 einwandfrei. Hier das Ergebnis: Array ( [Renault] => Array ( [color] => silver [year] => 2006 [price] => 11.000 ) [BMW] => Array ( [color] => black [year] => 2005 [price] => 22.000 ) [Audi] => Array ( [color] => blue [year] => 2004 [price] => 31.000 ) ) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive