fastix®: Mehrdimensionale Arrays

Beitrag lesen

Moin!

$temp = array();

for(..){
   array_push($temp,"name","vorname");
}

$arPersonen=array();
legt ein Array an.

for ($i....) {
  #  i von 0 bis ... ???
  $arPersonen[$i]=array();
  # Das Array-Element wird selbst zum Array
  $arPersonen[$i]['nname']='Max';
  $arPersonen[$i]['vname']='Mustermann';

}

Zum Sortieren ein Hilfsarray 'bauen':

$strSchluessel='vname'; #Wonach soll sortiert werden?

for ($i....) {
 # siehe oben, muss den gleichen Gang nehmen
  $arTemp['$i']= $arPersonen[$i][$strSchluessel];
}

Hilfsarray sortieren

asort --  Sortiert ein Array und behält die Indexverbindungen

asort($arTemp);

Das Array $arTemp ist jetzt sortiert

while (list ($key) = each ($arTemp)) {
   # numerischer $key:
   $key=(int)$key;
   # Kein weiterer Umweg Ausgabe des ursprünglichen Arrays:
   echo $arPersonen[($key)]['nname'].', '.$arPersonen[($key)]['vname']."<br>\n";
}

--- ungetestet, kann Fehler enthalten ---

Gegenfrage: Wo kommen denn die Daten des Arrays her?
Datenbank: nutze deren Funktionen
File: unix hat den netten, schnellen und mächtigen Befehl 'sort'. Eventuell solltest Du den benutzen.

Beispieldatei:

Max;Mustermann
Hans;Meier
Hein;Stein

Das Einlesen der Datei geht dann so: $strDateiInhalt=system("sort -t; -k2 $file")
Einlesen des nach nach Spalte 1, dann Spalte 2 sortierten Datei, Spaltentrenner ist ';' (Das Semikolon muss für die Shell maskiert werden.)

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development