phpbar.de logo

Mailinglisten-Archive

[php] multidimensionaler Array

[php] multidimensionaler Array

G.Wendebourg gw at web-hh.de
Don Jul 27 14:04:06 CEST 2006


Sebastian Mendel schrieb:
> G.Wendebourg schrieb:
>   
>> [...]
>>
>> Wie kann ich etwa einen Array mit 4 Feldern (zb. Name, eMail, Ort,
>> Telefon, Datum) und einer beliebigen Anzahl Elementen ueber eine
>> Schleife befuellen / etablieren ?
>>     
>
> $data = array();
> for/if/while ... {
>     $data[] = array(
>         'name'  => $result[0],
>         'email' => $result[1],
>         'ort'   => $result[2],
>     )
> }
>   
Danke. Damit funktioniert der Aufbau des Arrays.  Allerdings s.u.
>> soll anschliessend  nach einem der Felder sortiert werden koennen,
>> um dann eine entsprechende Ausgabe zu realisieren.
>> Wie wuerde dann der anschliessende Befehl fuer den Sortiervorgang (zb.
>> nach "Ort") aussehen?
>>     
>
> php.net/array_multisort
>
>   
Auf php.net hatte ich eine Loesung gefunden, die aber den Umbau des
Arrays zur Voraussetzung machte und bei mir auch dann nicht funktionierte.

Kann man nicht einen Array direkt so aufbauen, das er anschliessend
sortierbar ist?

PS
Habe nun den Array so aufgebaut:
while..{
$adr_arr['mail'][]=$email;
$adr_arr['name'][]=$name;
$adr_arr['ort'][]=$ort;
$adr_arr['datum'][]=$timestamp;}

Wenn ich es nun aber versuche mit
    array_multisort ($adr_arr['datum'], SORT_NUMERIC, SORT_DESC );

dann bekomme ich tatsaechlich das Datum sortiert, waehrend die uebrigen
"Spalten" in ihrer Rangfolge verbleiben.
Liegt das an falscher Syntax bei multisort oder am Aufbau des Arrays?
Bzw. wie muesste das korrekt aussehen?

>> Oder ueberfordere ich damit die PHP-Array-Funktionalitaeten und sollte
>> besser ueber MYSQL gehen?
>>     
>
> Wenn es eh aus einer DB kommt ist dies natürlich IMMER die bessere und
> vor allem schnellere Lösung!
>   
Nun, Datenbasis sind Textfiles, und es schien mit etwas "durch die Brust
ins Auge" nun diese Textfiles nach MYSQL einzulesen um dort zu sortieren.
Allerdings stelle ich nun fest, dass ich vermutlich deutlich schneller
gewesen waere, das ganze auf diesem Weg abzuwickeln, so dass ich mir
erspart haette, mich mit kryptischen Array-Funktionalitaeten
auseinanderzusetzen.

Ich haette mir gedacht, dass dieser Anwendungsfall durch sortierbare
Arrays direkter und deshalb eleganter zu loesen sei.
Wenn dazu allerdings eher unueberschaubare Code-Konstrukte erforderlich
sind, dann ist es vielleicht doch besser, davon Abstand zu nehmen ?


Gruss / GW

>
>   


php::bar PHP Wiki   -   Listenarchive