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

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

Element an das Ende eines Arrays hinzufügen

Sie befinden sich: Home > Php Tutorial > Element an das Ende eines...

Element an das Ende eines Arrays hinzufügen


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

Wer Elemente dynamisch an ein Array anhängen möchte, kann dafür array_push() verwenden. Die Funktion fügt ein oder mehrere Elemente an das Ende eines Arrays an und gibt die neue Länge des Arrays zurück. Gerade wenn mehrere Werte auf einmal angehängt werden sollen, ist array_push() die richtige Wahl.

Syntax von array_push()

Die Funktion erwartet als ersten Parameter das Array und danach beliebig viele Werte, die angehängt werden sollen:

<?php

array_push(array &$array, mixed ...$values): int
?>

Der Rückgabewert ist die neue Anzahl der Elemente im Array. Das Array selbst wird direkt verändert (per Referenz übergeben), es muss also nicht neu zugewiesen werden.

Grundlagen: Elemente an ein Array anhängen

Im einfachsten Fall übergibt man ein Array und die gewünschten Werte:

<?php

$fruechte = ['Banane', 'Apfel'];
array_push($fruechte, 'Erdbeere', 'Kiwi');

print_r($fruechte);
/* Ausgabe:
Array
(
[0] => Banane
[1] => Apfel
[2] => Erdbeere
[3] => Kiwi
)
*/
?>

Die neuen Elemente werden in der angegebenen Reihenfolge am Ende des Arrays angefügt. Die bestehenden Indizes bleiben unverändert.

array_push() vs. Kurzschreibweise $array[] = $wert

Für das Anhängen eines einzelnen Elements gibt es in PHP eine kürzere und schnellere Alternative: die Kurzschreibweise $array[] = $wert. Der Unterschied im Überblick:

<?php

$farben = ['rot', 'blau'];

/* Ein Element: Kurzschreibweise bevorzugen */
$farben[] = 'gruen';

/* Mehrere Elemente: array_push nutzen */
array_push($farben, 'gelb', 'lila', 'orange');

print_r($farben);
/* Ausgabe:
Array
(
[0] => rot
[1] => blau
[2] => gruen
[3] => gelb
[4] => lila
[5] => orange
)
*/
?>

Die Kurzschreibweise $array[] = $wert ist schneller als array_push(), weil kein Funktionsaufruf nötig ist. Bei einzelnen Elementen sollte man daher immer die Kurzform verwenden. array_push() lohnt sich vor allem dann, wenn mehrere Werte gleichzeitig angehängt werden sollen.

Praxisbeispiel: Fehlermeldungen sammeln

Ein typischer Anwendungsfall für array_push() ist das Sammeln von Daten in einer Schleife oder bei einer Validierung. Das folgende Beispiel prüft Formulareingaben und sammelt alle Fehler in einem Array:

<?php

$fehler = [];
$name = '';
$email = 'test@';
$alter = -5;

if (empty($name)) {
$fehler[] = 'Name darf nicht leer sein.';
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$fehler[] = 'Ungültige E-Mail-Adresse.';
}

if ($alter < 0 || $alter > 150) {
$fehler[] = 'Alter muss zwischen 0 und 150 liegen.';
}

if (count($fehler) > 0) {
echo 'Es gibt ' . count($fehler) . ' Fehler:';
foreach ($fehler as $f) {
echo '- ' . $f;
}
} else {
echo 'Alle Eingaben sind gültig.';
}
?>

Hier wird die Kurzschreibweise $fehler[] = ... verwendet, weil jeweils nur ein einzelner Wert angehängt wird. Würde man in einem Schritt mehrere Fehler auf einmal hinzufügen, wäre array_push($fehler, $fehler1, $fehler2) die bessere Wahl.

Verhalten bei assoziativen Arrays

Ein häufiger Stolperstein: Wenn man array_push() auf ein assoziatives Array anwendet, erhalten die neuen Elemente automatisch numerische Schlüssel. Die bestehenden String-Schlüssel bleiben erhalten, aber die neuen Einträge passen nicht ins Schema:

<?php

$person = [
'name' => 'Max',
'email' => 'max@example.com'
];

array_push($person, 'Berlin');

print_r($person);
/* Ausgabe:
Array
(
[name] => Max
[email] => max@example.com
[0] => Berlin
)
*/
?>

Der neue Wert bekommt den numerischen Index 0 statt eines sprechenden Schlüssels. Bei assoziativen Arrays sollte man daher direkt einen Schlüssel vergeben: $person['stadt'] = 'Berlin'. array_push() ist für numerisch indizierte Arrays gedacht.

array_push() in Schleifen verwenden

In Schleifen ist array_push() oder die Kurzschreibweise besonders nützlich, um Ergebnisse schrittweise zu sammeln:

<?php

$zahlen = [12, 5, 8, 23, 3, 17, 42, 9];
$grosse = [];

foreach ($zahlen as $z) {
if ($z > 10) {
$grosse[] = $z;
}
}

print_r($grosse);
/* Ausgabe:
Array
(
[0] => 12
[1] => 23
[2] => 17
[3] => 42
)
*/
?>

Dieses Muster kommt in der Praxis ständig vor: Man iteriert über Daten, filtert nach bestimmten Kriterien und sammelt die Treffer in einem neuen Array. Für einzelne Elemente pro Durchlauf ist die Kurzschreibweise $grosse[] = $z die richtige Wahl.

Verwandte Funktionen: Die Array-Stack-Familie

PHP bietet vier Funktionen, um Elemente am Anfang oder Ende eines Arrays hinzuzufügen und zu entfernen. Zusammen bilden sie eine Stack- und Queue-Struktur:

FunktionPositionAktion
array_push()EndeElemente hinzufügen
array_pop()EndeLetztes Element entfernen
array_unshift()AnfangElemente hinzufügen
array_shift()AnfangErstes Element entfernen

Mit array_push() und array_pop() lässt sich ein Stack (Last-In-First-Out) abbilden. Kombiniert man array_push() mit array_shift(), erhält man eine Queue (First-In-First-Out). Wer Elemente am Anfang einfügen möchte, findet im Tutorial zu array_unshift() weitere Beispiele.

Häufige Fragen zu array_push()

Die wichtigsten Fragen rund um array_push() im Überblick:

Wann sollte ich array_push() statt $array[] verwenden?

Wenn mehrere Werte gleichzeitig angehängt werden sollen. Für ein einzelnes Element ist $array[] = $wert kürzer und schneller. array_push($arr, $a, $b, $c) spart dagegen drei einzelne Zuweisungen.

Was gibt array_push() zurück?

Die Funktion gibt die neue Anzahl der Elemente im Array als int zurück. Dieser Rückgabewert wird in der Praxis selten genutzt, kann aber nützlich sein, um die aktuelle Größe des Arrays zu kennen.

Kann array_push() auch am Anfang einfügen?

Nein. array_push() fügt Elemente ausschließlich am Ende ein. Für das Einfügen am Anfang gibt es array_unshift().

Welche Datentypen kann array_push() anhängen?

array_push() akzeptiert jeden Datentyp als Wert: Strings, Zahlen, Arrays, Objekte oder null. Der Typ wird nicht verändert.

Was passiert bei einem leeren Array?

Das funktioniert problemlos. array_push() fügt die Elemente einfach in das leere Array ein und nummeriert sie ab Index 0. Auch die Kurzschreibweise $arr[] = $wert funktioniert mit leeren Arrays.

 

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.