Einen Wert am Anfang/Ende eines Arrays hinzufügen (Thema: PHP Beispiele)

Wie in PHP am Anfang oder Ende eines Arrays ein Wert beliebigen Datentyps hinzugefügt werden kann

1. Wert am Ende hinzufügen

Die typische Syntax zum Hinzufügen eines Wertes $wert zu einem Array $array lautet „$array[] = $wert;”, dargestellt im folgenden Beispiel:

PHP-Code
<?php
	$arr = array(1, 2, 3);
	$arr[] = 4;
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Statt PHP die Suche nach dem passenden Schlüssel zu überlassen, kann man diesen auch selbständig wählen. Der letzte Schlüssel entspricht der Anzahl der Elemente im Array minus 1, also count($array)-1. Das nächste Element muss entsprechend den Schlüssel count($array)-1+1 bzw. einfacher count($array) haben.

PHP-Code
<?php
	$arr = array(1, 2, 3);
	$arr[count($arr)] = 4;
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Ebenfalls gewählt werden kann der Plus-Operator, wenn der hinzuzufügende Wert in ein Array umgewandelt wird. Dabei ist zu beachten, dass $array1 + $array2 zwar $array1 mit $array2 verbindet, aber nur diejenigen Werte aus $array2 in $array1 übernommen werden, deren Schlüssel noch nicht in $array1 vorhanden ist.

PHP-Code
<?php
	$arr = array(1, 2, 3);
	$arr2 = array(0=>4, 4=>5); // der Schluessel des Wertes 4 ist schon belegt, daher wird 4 nicht hinzugefuegt
	$arr = $arr + $arr2;
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 5
)


Folgende Wege, einen Wert am Ende einzufügen sind falsch, da die Werte nicht in Arrays umgewandelt wurden:

  • $arr = $arr + 4: Erzeugt einen Fatal Error.
  • $arr += 4: Erzeugt einen Fatal Error.

Vergleichbar zu etwa JavaScript gibt es auch in PHP eine push-Funktion. Mit array_push($array, $wert) kann der Wert $wert zum Array $array hinzugefügt werden.

PHP-Code
<?php
	$arr = array(1, 2, 3);
	array_push($arr, 4);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Reichlich umständlich ist die Verwendung von array_pad($array, $anzahl, $wert), welches am Ende vom Array $array insgesamt $anzahl-count($array) neue Werte mit dem Inhalt $wert hinzufügt. Setzt man $anzahl auf count($array)+1 und $wert auf den hinzuzufügenden Wert, dann wird entsprechend der gewünschte Wert am Ende exakt ein mal eingefügt.

PHP-Code
<?php
	$arr = array(1, 2, 3);
	$arr = array_pad($arr, count($arr)+1, 4);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Verwendet werden kann auch array_merge($array1, $array2), welches alle Werte aus $array2 zu $array1 (am Ende) hinzufügt, also die beiden Arrays verbindet. Der einzufügende Wert kann mit array($wert) oder (array)$wert in ein Array umgewandelt werden. Diese Funktion ist insbesondere dann nützlich, wenn man mehr als einen Wert hinzufügen will.

PHP-Code
<?php
	$arr = array(1, 2, 3);
	$arr = array_merge($arr, array(4));
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


2. Wert am Anfang hinzufügen

Das Hinzufügen von Werten am Anfang des Arrays ist schwieriger als das Einfügen am Ende, da alle bereits vorhandenen Werte verschoben werden müssen. Es gibt keinen einfachen Operator, der analog zur bereits vorgestellten $array[]-Syntax eingesetzt werden kann, um am Anfang Elemente hinzuzufügen. Letztlich können allerdings alle zuvor beschriebenen Wege weiterverwendet werden, wenn das Array ein mal vor deren Anwendung umgedreht wird und ein mal danach. Das Umdrehen erfolgt mit array_reverse($arr). Die neuen Elemente müssen ebenfalls umgedreht angefügt werden.

PHP-Code
<?php
	$arr = array(10, 11, 12);
	$arr = array_reverse($arr);
	$arr[] = 9;
	$arr[count($arr)] = 8;
	$arr = array_reverse($arr);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 8
    [1] => 9
    [2] => 10
    [3] => 11
    [4] => 12
)


Das Array mehrmals umzudrehen ist offensichtlich aufwendig. Besser ist es, zumindest beim Hinzufügen eines einzelnen Wertes die Funktion array_unshift($array, $wert) zu benutzen. Diese funktioniert analog zu array_push($array, $wert) und fügt den Wert $wert am Anfang des Arrays $array hinzu.

PHP-Code
<?php
	$arr = array(10, 11, 12);
	array_unshift($arr, 9);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 9
    [1] => 10
    [2] => 11
    [3] => 12
)


Die bereits vorgestellte Methode array_pad($array, $anzahl, $wert) lässt sich ebenfalls weiterverwenden, wenn für $anzahl ein negativer Wert eingesetzt wird. Dieser signalisiert, dass array_pad() zusätzliche Elemente am Anfang des Arrays erzeugen soll.

PHP-Code
<?php
	$arr = array(10, 11, 12);
	$arr = array_pad($arr, (-1)*(count($arr)+1), 9);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 9
    [1] => 10
    [2] => 11
    [3] => 12
)


Ebenfalls weiterverwenden lässt sich array_merge($array1, $array2), dafür muss dasjenige Array zu dem hinzugefügt werden soll nur als zweiter Parameter übergeben werden. An erste Stelle setzt man entsprechend den gewünschten Wert als Array (bzw. die gewünschten Werte, falls mehrere am Anfang eingefügt werden sollen).

PHP-Code
<?php
	$arr = array(10, 11, 12);
	$arr = array_merge(array(9), $arr);
	print_r($arr);
?>

HTML-Code
Array
(
    [0] => 9
    [1] => 10
    [2] => 11
    [3] => 12
)


Kommentare (0)

Von neu nach alt