logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

PHP-Lektionen – Lektion 10 – Arrays

26/05/2025, by Ivan

Bis zu dieser Lektion haben wir nur numerische und String-Variablen betrachtet, und in dieser Lektion lernen wir Arrays kennen. Arrays können sowohl numerische als auch String-Variablen enthalten. Deshalb werden sie auch Arrays genannt.

Der Kern eines Arrays ist folgender: Es gibt viele Array-Schlüssel und viele Array-Werte. Jedem Schlüssel gehört genau ein Wert. Zum Beispiel haben wir die Schlüssel 1, 2, 3, die Werte könnten 4, 'Hello World', true sein. Arrays werden ähnlich wie Variablen mit einem Dollarzeichen geschrieben:

$tree = array();

Nur zum Erstellen eines Arrays verwenden wir die Funktion array().

Eigentlich ist es nicht zwingend erforderlich, ein Array so zu deklarieren wie eine Variable in PHP. Aber um fremden Code besser zu verstehen, ist es immer besser zu sehen, wo Variablen herkommen und welchen Typ sie haben.

Jetzt definieren wir das oben genannte Array:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
?>

Achten Sie auf die Syntax. Zuerst wird wie bei einer Variable ein Wert zugewiesen. Dann folgt das Schlüsselwort array, das bedeutet, dass die Variable ein Array ist. Danach kommen in runden Klammern die Schlüssel/Wert-Paare.

Diese werden folgendermaßen geschrieben:

array(
  key1 => value1,
  key2 => value2,
);

Zuerst kommt der Schlüssel, dann das Gleichheitszeichen mit größer-als-Zeichen ohne Leerzeichen dazwischen. Nach dem Größer-als-Zeichen folgt ein Leerzeichen und dann der Wert, der zum Schlüssel gehört. Nach jedem Schlüssel/Wert-Paar steht ein Komma. So geht es für jedes Paar weiter.

Man kann das Array auch in einer Zeile schreiben:

<?php
  $tree = array(1 => 4, 2 => 'Hello World', 3 => true,); 
?>

Die Variable $tree ist in beiden Fällen gleich. Die erste Schreibweise ist aber lesbarer, und über Schreibregeln sprechen wir später – jetzt ist es wichtiger, den Sinn zu verstehen.

Man kann ein Array mit der Funktion print_r() auf dem Bildschirm ausgeben. Im Gegensatz zur Funktion print verwendet print_r Klammern.

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print_r($tree);
?>

Als Ergebnis wird das Array auf dem Bildschirm ausgegeben:

Array ( [1] => 4 [2] => Hello World [3] => 1 )

Wenn wir den Tag <pre> hinzufügen, wird die Ausgabe des Arrays besser lesbar:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Das Ergebnis sieht dann so aus:

Array
(
    1 => 4,
    2 => 'Hello World',
    3 => true,
) 

Jetzt, wo wir gelernt haben, Arrays zu erstellen, versuchen wir, Informationen aus Arrays auszulesen:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print $tree[2];
?>

So haben wir das zweite Element des Arrays 'Hello World' ausgegeben. Um auf einen Wert eines Schlüssels zuzugreifen, schreibt man den Namen der Array-Variable und dann in eckigen Klammern den Schlüssel. So kann man z.B. $tree[1], $tree[3] aufrufen.

Jetzt sehen wir, wie man ein Element zu einem Array hinzufügt. Es reicht, einen leeren Schlüssel anzugeben:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[] = 'Noch ein Element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

So wird folgendes Array ausgegeben:

Array
(
    [1] => 4
    [2] => Hello World
    [3] => 1
    [4] => Noch ein Element
)

Wie Sie sehen, fügt PHP beim leeren Schlüssel automatisch den nächstfolgenden Schlüssel hinzu. Man kann aber auch direkt einen Schlüssel in eckigen Klammern angeben:

 

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[6] = 'Ein anderes Element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Dann haben wir die Schlüssel 1, 2, 3 und 6, während die Schlüssel 4 und 5 fehlen. Daher sollte man sich merken, dass wenn z.B. Schlüssel 103 und 105 im Array vorkommen, nicht automatisch ein Schlüssel 104 existiert. Ob ein Schlüssel existiert, kann man mit der Funktion prüfen:

if(empty($tree[104])){

}

Wenn man einen bereits existierenden Schlüssel in den eckigen Klammern angibt, kann man den Wert überschreiben:

 

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[3] = 'Ein anderes Element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Es werden keine neuen Elemente erstellt, aber der Wert des Schlüssels 3 wird überschrieben.

Außerdem sollte man beachten, dass der Schlüssel eines Arrays auch ein Text sein kann:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    'key3' => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

In diesem Fall schreibt man den Schlüssel in Anführungszeichen (einfach oder doppelt). Auch auf Werte kann man so zugreifen:

print $tree['key3'];

Ich denke, mit Arrays ist soweit alles klar... zumindest vorerst, denn jetzt werde ich über mehrdimensionale Arrays sprechen.

PHP mehrdimensionale Arrays

Mehrdimensionale Arrays haben, wie der Name sagt, mehrere Dimensionen. Eine einfache Erklärung ist die Multiplikationstabelle, bei der zwei Zahlen einen Wert ergeben, der von beiden Zahlen abhängt.

<?php
$multi = array();
$multi[1][1] = 1;
$multi[1][2] = 2;
$multi[1][3] = 3;
$multi[2][1] = 2;
$multi[2][2] = 4;
$multi[2][3] = 6;
$multi[3][1] = 3;
$multi[3][2] = 6;
$multi[3][3] = 9;
print '<pre>';
print_r($multi);
print '</pre>';
?>

In einem eindimensionalen Array haben wir einen Schlüssel, in einem zweidimensionalen Array zwei Schlüssel. In einem dreidimensionalen Array sind es drei Schlüssel und so weiter. Dabei ist die Reihenfolge der Schlüssel wichtig, also sind $multi[1][3] und $multi[3][1] verschiedene Werte.

<?php
$multi = array();
$multi[1][3] = 3;
$multi[3][1] = 'Hello, World!';
print '<pre>';
print_r($multi);
print '</pre>';
?>

Man kann Arrays auch direkt mit vielen Werten setzen:

<?php
$multi = array(
  1 => array(
    1 => 1,
    2 => 2,
    3 => 3,
  ),
  2 => array(
    1 => 2,
    2 => 4,
    3 => 6,
  ),
  3 => array(
    1 => 3,
    2 => 6,
    3 => 9,
  ),
);
print '<pre>';
print_r($multi);
print '</pre>';
?>

Wenn ich weitere Beispiele zu Arrays habe, werde ich sie später bringen, aber jetzt gehen wir zur nächsten Lektion.