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