Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

Array-Werte in Variablen entpacken mit list

Sie befinden sich: Home > Php Tutorial > Array-Werte in Variablen...

Array-Werte in Variablen entpacken mit list


Eintrag am:  28.08.2010
Hits / Besucher:  6376
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Mit list() lassen sich die Werte eines Arrays in einem Schritt auf mehrere Variablen verteilen. Das spart Code und macht die Zuweisung übersichtlicher, besonders wenn ein Array eine feste Struktur hat. Seit PHP 7.1 gibt es dafür auch die kompaktere Kurzschreibweise mit eckigen Klammern.

Grundlegende Verwendung

list() steht auf der linken Seite einer Zuweisung und nimmt die Variablennamen entgegen, in die die Array-Werte geschrieben werden sollen:

<?php

$person = ['Anna', 'Müller', 28];

list($vorname, $nachname, $alter) = $person;

echo $vorname; // Anna
echo $nachname; // Müller
echo $alter; // 28
?>

Die Variablen werden in der Reihenfolge der Array-Elemente zugewiesen. Das erste Element landet in der ersten Variablen, das zweite in der zweiten und so weiter.

Kurzschreibweise mit eckigen Klammern

Seit PHP 7.1 kann statt list() auch die kürzere Syntax mit eckigen Klammern verwendet werden. Das Ergebnis ist identisch:

<?php

$koordinaten = [52.52, 13.405];

[$breite, $laenge] = $koordinaten;

echo 'Breitengrad: ' . $breite; // 52.52
echo 'Längengrad: ' . $laenge; // 13.405
?>

Diese Schreibweise hat sich in der Praxis durchgesetzt, weil sie kürzer ist und an die Syntax anderer Programmiersprachen erinnert.

Elemente überspringen

Nicht immer werden alle Werte aus dem Array gebraucht. Einzelne Positionen lassen sich durch Auslassen des Variablennamens überspringen:

<?php

$datei = ['bericht', '2024-03-15', 'pdf'];

[, $datum, $format] = $datei;

echo $datum; // 2024-03-15
echo $format; // pdf
?>

Das erste Element wird hier ignoriert, nur das zweite und dritte werden in Variablen gespeichert.

Praxisbeispiel: Kombination mit explode()

Besonders nützlich ist list() zusammen mit explode(), wenn ein String mit bekannter Struktur zerlegt werden soll:

<?php

$zeile = '2024-03-15;Rechnung;149.90';

[$datum, $typ, $betrag] = explode(';', $zeile);

echo $typ . ' vom ' . $datum . ': ' . $betrag . ' EUR';
/* Ausgabe: Rechnung vom 2024-03-15: 149.90 EUR */
?>

Da explode() ein Array zurückgibt, kann das Ergebnis direkt in Variablen entpackt werden, ohne das Array in einer Zwischenvariablen zu speichern.

In Schleifen mit foreach

Besonders elegant ist list() innerhalb einer foreach-Schleife. Wenn ein Array aus gleichförmigen Unter-Arrays besteht, können die Werte direkt in benannte Variablen entpackt werden:

<?php

$produkte = [
['Laptop', 899],
['Maus', 29],
['Monitor', 349]
];

foreach ($produkte as [$name, $preis]) {
echo $name . ': ' . $preis . ' EUR<br>';
}
/* Ausgabe:
Laptop: 899 EUR
Maus: 29 EUR
Monitor: 349 EUR */
?>

Ohne list() müsste jedes Element über seinen Index angesprochen werden ($produkt[0], $produkt[1]), was den Code deutlich schlechter lesbar macht.

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.