Willi: 2D Array sortieren; foreach?

Beitrag lesen

Hallo,
Ich habe hier eine Frage, besser gesagt gleich mehrere.
Ich fange am besten ganz vorne an: Ich habe auf meiner Homepage (www.abi10-asg.de.vu) eine Rubrik Steckbriefe, vor kurzem habe ich diese auf PHP umgestellt. Dazu habe ich ein 2D-Array $namen, an wessen Position 0 ebenfalls ein Array mit dem Namen, Nachnamen, Geburtsdatum, Wohnort, Größe, ... ist. Das Array $namen geht bis zu $namen[24], hat also 25 Elemente. Auf die Daten greife ich dann in einer Datei einsteckbrief.php zu, welches je nach per GET gelieferten "ID" einen anderen Steckbrief anzeigt (bei ?id=1 wird der Steckbrief von $namen[0] angezeigt etc.), aber das sei hier nur nebenbei gesagt. Auf das Array $namen greife ich per include in jeder benötigten Datei zu.
Jetzt möchte ich, dass es neben der alphabetisch sortierten Liste auch noch eine Liste gibt, welche die Namen der Größe nach ordnet (Info: Die Größe ist in $namen[xxx][6] gespeichert), das müsste eigentlich auch ganz gut klappen, da die Größe in Zentimetern als numerischer Wert gespeichert ist. Ich habe auch schon auf php.net geschaut und gegoogelt und gesehen, dass es die Funktion "array_multisort" gibt, welche dafür wohl ganz gut geeignet wäre.

Meine erste Frage ist deswegen folgende:
Im Beispiel zu array_multisort auf php.net zeigt[/link] mir dazu zwar schon etwas an, verstehen tue ich es aber nicht. Was bedeutet denn die Funktion "foreach"? Dass sie was mit dem "durchlaufen eines Arrays" zu tun hat, habe ich zwar schon gefunden, aber verstehen tue ich die Funktion nicht. (Und ich bin nicht einer, der einfach nur Copy&Paste verwendet, ich will schon wissen, was denn was macht.)
Meine 2. Frage:
Könnte mir jemand den passenden Code schreiben? Oder mir vllt. noch Tipps geben?

Bisher habe ich folgendes stehen, es klappt aber nicht.

  
<?php  
  echo "<table summary='Gr&ouml;&szlig;en'>\n";  
  echo "<tr>\n<th>Name</th>\n<th>Gr&ouml;&szlig;e</th></tr>";  
  for($i = 0; $i <= $anzahl-1; $i++) {  
    if($namen[$i][6] != '') {  
      $groesse[$i][0] = $namen[$i][6];  
      $groesse[$i][1] = $namen[$i][0];  
foreach ($groesse as $key => $row) {  
   $cm[$key]  = $row[0];  
   $name[$key] = $row[1];  
}  
      array_multisort($cm, SORT_DESC, $namen, SORT_ASC, $groesse);  
      echo "<tr><td>".$groesse[$i][1] . "</td> <td>". $groesse[$i][0]."cm</tr>\n";  
    }  
  }  
  echo "</table>";  
  ?>

Okay, da habe ich fast nur Copy&paste betrieben...

Ich würde mich sehr über eine hilfreiche Antwort freuen,

Gabriel

--
ie:{ fl:| br:> va:) ls:? fo:| rl:? n4:? ss:| de:> js:| ch:? sh:( mo:? zu:}