phpbar.de logo

Mailinglisten-Archive

[php] Arrays sortieren lassen...

[php] Arrays sortieren lassen...

Sebastian Mendel lists at sebastianmendel.de
Don Aug 18 11:34:46 CEST 2005


Lutz Zetzsche wrote:
> Hi Norbert,
> 
> Norbert Pfeiffer schrieb:
>> Hi Fabian,
>>
>> vergiss array_multisort();
>> das benoetigt einen sdpeziellen Aufbau der Arrays, so dass
>> sie meistens hin und her konvertiert werden muessen, um es
>> naturgemaess anzuwenden - IMHO eine ueberfluessige Funktion.
>>
>> Praktischer ist usort();
> 
> nicht schon wieder, Norbert. ;-) Mittlerweile weiß zwar jeder aus den
> vergangenen Jahren, daß Du array_multisort() nicht magst, aber überflüssig
> ist die Funktion überhaupt nicht. Ganz im Gegenteil. Sie ist zudem auch
> sehr mächtig.

sehr mächtig ist es, und das ist auch gleich die Ursache für Norberts 
Kritik, denn diese Mächtigkeit kommt nicht ohne Nachteile, nämlich die 
etwas 'verworren' wirkende 'Parametrisierung'


> Was ist im übrigen eine "naturgemäße" Anwendung? ;-) array_multisort()
> erwartet einen multidimensionalen Array, der praktisch wie eine
> Datenbanktabelle aufgebaut ist. Kann es, so gesehen, einen naturgemäßeren
> Aufbau eines Arrays geben? Sicherlich nicht. :-D

... war es nicht so: array ... struct ... object

davon ausgehend ist es für mich auch eher 'naturgmäß' das die Elemente 
eines 'Objketes' (auch wenn das 'Objekt' in dem Falle ein Array ist) in 
einem 'Objekt' sind und nicht alle Eigenschaften des Typs 'a' im ersten 
'Objekt' und alle Eigenschaften des Typs 'b' im zweiten ... sondern 
jedes 'Objekt' eine Eigenschaft 'a' und 'b' hat.

gruppe ( holzbecher( rot, rund )
          plastebecher( gelb, dick )
          metallbecher( blau , dünn ) )

als

gruppe ( name( holzbecher, plastebecher, metallbecher )
          farbe( rot, gelb, blau )
          form( rund, dick, dünn )  )


da diese (die erste) 'naturgemäße' Form eines Arrays meißt durch 
Datenbankabfragen auftritt ist dafür ein array_mutlisort() eh 
überflüssig, da die Sortierung in der DB erfolgen sollte (noch viel 
mächtiger!)


p.s. und die mächtigste aller Möglichkeiten ist das Array per DB-Abfrage 
zu sortieren ... da hat man dann sogar noch GROUP BY, LIMIT, und HAVING 
Funktionalität ;-)


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive