[Tutorial] Arbeiten mit Arrays [2 von 2]Sie befinden sich: Home > Webmaster News
Man kann einem Array auch eigene, sprechende Indexe zuweisen. Die Syntax für die foreach-Anweisung ändert sich dann etwas:
<?php
$farbe = array();
$farbe['standard'] = 'schwarz';
$farbe['fehlermeldung'] = 'rot';
$farbe['blass'] = 'grau';
foreach ($farbe AS farbart => $farbstufe) {
echo $farbart . ' hat den Wert ' . $farbstufe . '<br />';
}
?>
Ein Array mit solch einem benannten Index nennt man auc 'Assoziativen Array'. Die Indexe sollten immer mit einfachen Hochkommas geschrieben werden, wobei auch die Schreibweise mit doppelten Hochkomams und auch die Schreibweise ohne diese funktioniert:
Dies ist die beste Schreibweise: $farbe['blass'] = 'grau';
$farbe["blass"] = 'grau'; Bei dieser Schreibweise liest der PHP-Interpreter den Text zwischen den Doppelhochkommas aus und prüft, ob er dort etwas parsen muss. Daher dauert die Ausführung der Anweisung bei dieser Schreibweise etwas länger. Auch wenn es nur Sekundenbruchteile sind, so können sich diese in größeren Schleifen doch schnell aufsummieren.
$farbe[blass] = 'grau'; Bei dieser Schreibweise liest der PHP-Interpreter den Text zwischen den Klammern aus und prüft, ob es sich bei dem Wort blass um eine Konstante handelt. Daher dauert die Ausführung der Anweisung bei dieser Schreibweise etwas länger. Auch wenn es nur Sekundenbruchteile sind, so können sich diese in größeren Schleiefn doch schnell aufsummieren. Hinzu kommt, dass diese Schreibweise, ach wenn sie funktioniert, syntaktisch falsch ist. Sie sollte daher vermieden werden.
Die bisher betrachteten Array waren zweidimensional. Die erste Dimension ist die Variable selbst, die zweite Dimension ist das Paar index/wert. Man kann nun jedem Arraywert wieder selbst einen Array zuweisen und bekommt so ein dreidimensionales Array:
<?php
$obst = array();
$obst[] = array('Name'=>'Banane','Farbe'=>'gelb');
$obst[] = array('Name'=>'Kirsche','Farbe'=>'rot');
$obst[] = array('Name'=>'Apfel','Farbe'=>'gruen');
?>
Bei diesem dreidimensionalen Array greift man auf die einzelnen Elemente so zu:
echo $obst[1]['Name']; (Ausgegeben wird Kirsche)
Array kann mit einer einfachen Anweisung sortieren. Mit sort() sortiert man in aufsteigender, und mit rsort() in absteigender Reihenfolge:
<?php
$obst = array();
$obst[] = 'Apfel';
$obst[] = 'Birne';
$obst[] = 'Kirsche';
$obst[] = 'Banane';
sort($obst);
print_r($obst);
?>
Nutzt man sort() oder rsort() bei assoziativen Array, so gehen die Indexe verloren. Hier nutzt man die Anweisungen asort() oder
arsort() , mit denen nach den Werten sortiert wird, oder ksort() und krsort(), mit denen nach den Indexen sortiert wird.
Zusätzlich gibt es noch natsort() für Texte mit Zahlen:
<?php
$kinositze = array("Reihe 1", "Reihe 22", "Reihe 3", "Reihe 4");
sort($kinositze);
print_r($kinositze);
echo '<br />';
natsort($kinositze);
print_r($kinositze);
?>
Probieren Sie es aus.
Teile dieses Tutorials: -1- -2- (Autor: Wolfgang), Eingetragen am 25.07.2008
Schreib ein Kommentar
|