PHP: Assoziative Arrays
Erste Schritte – PHP: Assoziative Arrays
Neben einfachen (indexbasierten) Arrays bietet dir PHP sogenannte
assoziative Arrays. In einem assoziativen Array verwendest du
Schlüssel (Keys) anstelle von durchnummerierten Indizes. Das erlaubt dir,
Daten übersichtlich und semantisch zu organisieren – beispielsweise, um Angaben
zu einem Benutzer, Produkt oder Konfigurationsobjekt zu speichern.
1. Was ist ein assoziatives Array?
Während ein indexbasiertes Array so aussehen kann:
$fruechte = ["Apfel", "Banane", "Orange"];
wird bei assoziativen Arrays jedem Element ein Key (Schlüssel) zugeordnet,
der oft ein String ist:
$person = [ "name" => "Lisa", "alter" => 25, "stadt" => "Berlin" ];
So greifst du dann mit $person[„name“] auf das Element zu, anstatt mit
$person[0].
2. Array-Deklaration
In PHP gibt es unterschiedliche Möglichkeiten, ein assoziatives Array anzulegen:
<?php // Ältere Schreibweise $user = array( "username" => "lisa123", "email" => "lisa@example.com" ); // Kürzere (moderne) Schreibweise $konfig = [ "debug" => true, "version" => "1.2.3" ]; ?>
- „key“ => „value“ syntaktisch trennen Schlüssel und Wert durch =>.
3. Zugriff auf Werte
Möchtest du auf einen bestimmten Wert zugreifen, nutzt du den Key in eckigen
Klammern:
<?php echo $person["name"]; // "Lisa" echo $person["alter"]; // 25 ?>
Wenn du einen Schlüssel abfragen willst, der nicht existiert, führt das zu einer
Warnung oder (bei strengeren Einstellungen) zu einem Fehler. Nutze
isset()
oder
array_key_exists()
, um das zu prüfen.
4. Hinzufügen und Ändern
Du kannst Elemente nachträglich hinzufügen oder bestehende Werte ändern:
<?php $person["job"] = "Entwicklerin"; // Neues Feld $person["alter"] = 26; // Update des vorhandenen Werts ?>
Wenn du einen bereits existierenden Schlüssel überschreibst, ändert sich der zugehörige Wert.
5. Durchlaufen eines assoziativen Arrays
Da die Indizes keine Zahlen, sondern beliebige Keys sind, verwendest du am besten
foreach, um alle Schlüssel-Wert-Paare zu durchlaufen.
<?php foreach ($person as $key => $value) { echo "$key: $value <br>"; } ?>
Hierdurch erhältst du beispielsweise name: Lisa, alter: 25,
stadt: Berlin in einzelnen Zeilen.
6. Wichtige Array-Funktionen
Assoziative Arrays profitieren ebenfalls von den zahlreichen PHP Array-Funktionen.
Allerdings musst du auf einige Unterschiede achten:
- ksort($array): Sortiert das Array nach Keys (aufsteigend).
- asort($array): Sortiert das Array nach Werten (aufsteigend). Keys bleiben erhalten.
- array_key_exists($key, $array): Prüft, ob ein bestimmter Key existiert.
- array_values($array): Liefert ein numerisches Array aller Werte, unabhängig von den Keys.
- array_keys($array): Liefert alle Schlüssel als numerisches Array.
7. Beispiele
<?php $config = [ "app_name" => "MeinTool", "debug" => true, "port" => 8080 ]; // Sortiere nach Keys ksort($config); foreach ($config as $k => $v) { echo "$k => $v <br>"; } // Prüfe, ob "port" existiert if (array_key_exists("port", $config)) { echo "Port ist gesetzt: " . $config["port"]; } // Array-Werte abfragen $werte = array_values($config); // $werte ist nun ein numerisches Array [ "MeinTool", true, 8080 ] (nur Werte, Sortierung s. ksort) ?>
Hier erkennt man, wie man nach der ksort-Sortierung das Array geordnet
ausgibt und mit
array_key_exists
prüft, ob ein bestimmter Schlüssel existiert.
8. Assoziative Arrays oder Objekte?
Manchmal wirken assoziative Arrays wie einfache Objekte. Du kannst die
Daten jedoch nicht mit $person->name ansprechen, sondern musst den Array-Zugriff
nutzen ($person[„name“]). Wenn du objektorientiert arbeiten willst, kannst du
stattdessen eine Klasse definieren. Als praktischer Zwischenschritt werden aber
assoziative Arrays häufig in Konfigurations- oder Datenaustausch-Szenarien
(e.g. JSON) verwendet.
Fazit
Mit assoziativen Arrays in PHP kannst du Daten leichter
organisieren, indem du lesbare String-Schlüssel statt Zahlen-Indizes
verwendest. Das erleichtert den Code, wenn du beispielsweise Eigenschaften
eines Benutzers, Einstellungen oder andere Schlüssel-Wert-Paare abspeicherst.
Ob du nun auf $person[„name“] oder $config[„debug“] zugreifst
– es ist intuitiver als mit reinen Indizes. Dank zahlreicher Array-Funktionen
wie ksort oder array_key_exists kannst du das assoziative Array
flexibel durchsuchen, sortieren und anpassen, um schnell und effektiv in
PHP zu arbeiten.