Arrays 2

Möchte man beim Erstellen eines Arrays bestimmen welche Nummern die Elemente bekommen, kann dies mit einer Zuordnung gemacht werden. Dafür wird folgende Zeichenkette genutzt "=>".

<?PHP
$namen 
=  array(  =>  'Hans'=>  'Peter');
?>

Der Array beinhaltet zwei Elemente. Die Nummern 0 und 2 existieren nicht. Wird nun ein weiteres Element angehangen ($namen[] = 'Bob'), dann nummeriert die automatische Zählung mit dem nächst höheren Wert. Bob hat dann den Key mit der Zahl 4.

Assoziatives Array

Für die Keys können statt Zahlen auch Strings genutzt werden. Es werden dann statt Zahlen einfach Strings eingesetzt.

<?PHP
$namen 
=  array(  'sohn'  =>  'Mike''vater'  =>  'Klaus');
echo 
$namen['vater'];
?>

Ausgabe:

Klaus

Erweitern mit Key

Bisher haben wir den Key automatisch bestimmen lassen: Die nächst höhere Zahl. Falls kein Key eine Zahl sein sollte, beginnt die Zählung bei 0. Es kann aber auch ein Key angegeben werden.

<?PHP
$namen 
=  array(  =>  'Hans''vater'  =>  'Peter');
$namen['opa']  =  'Egon';
$namen[4]  =  'Bob';
?>

Der Array sieht nun wie folgt aus:

$namen
0     => Hans
vater => Peter
opa   => Egon
4     => Bob

Funktionen

Es gibt eine Vielzahl von Funktionen um Arrays zu manipulieren, zum Beispiel um sie zu sortieren. Einige davon werde ich später vorstellen.

Helfer

Als Programmierer möchte man hin und wieder wissen, was nun alles in einem Array drinne steht, und in welcher Reihenfolge. Dazu möchte ich eine sehr nützliche Funktion vorstellen: print_r()

<?PHP

$namen 
=  array  (
   
'ich'    =>  'Mike',
   
'vater'  =>  'Klaus',
   
'Peter',
   
'oma'    =>  'Erma'
);

print_r($namen);

?>

Ausgabe:

Array
(
    [ich] => Mike
    [vater] => Klaus
    [0] => Peter
    [oma] => Erma
)

Jetzt schreit natürlich jeder "Stimmt ja garnicht! Das ist alles in einer Zeile!" Schaut euch bitte den Quelltext im Browser an. Der Browser kennt ja nur HTML und kann mit Zeilenumbrüchen und mehreren Leerzeichen nichts anfangen. Also musst Du auch, um es schön zu machen, eine Ausgabe in HTML erzeugen.

<?PHP

echo  '<pre>';
print_r($namen);
echo 
'</pre>';

?>