Mailinglisten-Archive |
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