Hier können wir beliebig viele Dimensionen aufziehen (was aber ab der dritte Dimension ein wenig anstrengend zu denken ist)
Veranschaulichen wie es in einem Beispiel: Unsere Adresse von oben ist nur eine Adresse. Wenn ich nun mehrere Adressen speichern möchte, kann ich dies über mehrdimensionale Arrays erreichen. Dazu wird zum ersten Index einfach noch ein weiterer aufgenommen.
$adresse[0][vorname] = "Axel"; $adresse[0][nachname] = "Pratzner"; $adresse[1][vorname] = "Sabine"; $adresse[1][nachname] = "Musterfrau"; $adresse[2][vorname] = "Fritz"; $adresse[2][nachname] = "Müller"; echo "<pre>"; print_r ( $adresse );
Zum direkten Ansprechen müssen nun alle Indizes angegeben werden:
echo $adresse[2][vorname];
erstellen Sie ein mehrdimensionales Array, das folgende Daten enthält:
Land Hauptstadt
Land Fluss
für BRD, Schweiz, USA, Marroko
Diese Funktion ist anspruchsvoll, aber machbar. Präzise Arbeitsweise der Funktion array-multisort bei php.net.
Erster Schritt ist, dass man ein$termin[] = array('Datum' => 20081208, 'Ort' => "Wangen", 'Band'=>'cOoL RoCk oPaS');
$termin[] = array('Datum' => 20070311, 'Ort' => "Stuttgart", 'Band'=>'Die Hosenbodenband');
$termin[] = array('Datum' => 20070628, 'Ort' => "Tübingen", 'Band'=>'flying socks');
$termin[] = array('Datum' => 20070628, 'Ort' => "Stuttgart", 'Band'=>'flying socks');
Im nächsten Schritt wird nur für die Sortierung das mehrdimensionale Array aufgeteilt.
foreach ($termin as $nr => $inhalt)
{
$band[$nr] = $inhalt['Band'] ;
$ort[$nr] = $inhalt['Ort'] ;
$datum[$nr] = $inhalt['Datum'] ;
}
Und dann kann das eigentliche Sortieren durchgeführt werden:
// sortieren nach Datum array_multisort($datum, SORT_ASC, $termin); // sortieren nach Datum absteigend array_multisort($datum, SORT_DESC, $termin); // Sortierung nach Ort aufsteigend array_multisort($ort, SORT_ASC, $termin); // Sortierung nach Band aufsteigend array_multisort($band, SORT_ASC, $termin); // sortieren nach Datum und Ort array_multisort($datum, SORT_ASC, $ort, SORT_ASC, $termin);
Tipp am Rande: Um nicht ein Chaos beim Sortieren zu bekommen, da nach Groß- und Kleinschreibung sortiert wird (ein großes D kommt vor dem kleine a :) - einfach im zweiten Schritt alles klein machen:
foreach ($termin as $nr => $inhalt)
{
$band[$nr] = strtolower( $inhalt['Band'] );
$ort[$nr] = strtolower( $inhalt['Ort'] );
$datum[$nr] = strtolower( $inhalt['Datum'] );
}
Und nun die Einzelteile am Stück mit Sortierung auf Datum absteigend
$termin[] = array('Datum' => 20081208, 'Ort' => "Wangen", 'Band'=>'cOoL RoCk oPaS');
$termin[] = array('Datum' => 20070311, 'Ort' => "Stuttgart", 'Band'=>'Die Hosenbodenband');
$termin[] = array('Datum' => 20070628, 'Ort' => "Tübingen", 'Band'=>'flying socks');
$termin[] = array('Datum' => 20070628, 'Ort' => "Stuttgart", 'Band'=>'flying socks');
print_r ( $termin );
foreach ($termin as $nr => $inhalt)
{
$band[$nr] = strtolower( $inhalt['Band'] );
$ort[$nr] = strtolower( $inhalt['Ort'] );
$datum[$nr] = strtolower( $inhalt['Datum'] );
}
array_multisort($datum, SORT_DESC, $termin);
print_r ( $termin );