Du liest:
So kannst du Werte zu Arrays hinzufügen in PHP

So kannst du Werte zu Arrays hinzufügen in PHP

von Patrick
07.05.2020
Jetzt PHP programmieren lernen

Normalerweise ist es nur mit dem Erstellen eines Arrays nicht getan.
In den meisten Fällen müssen wir im späteren Verlauf unserer Skripte noch weitere Werte zu diesen hinzufügen.
In diesem Artikel möchte ich dir ein paar Vorgehensweisen dazu erläutern.

1. Einfaches hinzufügen mit []

Am einfachsten lässt sich einem Array ein Element hinzufügen durch die Verwendung von eckigen Klammern. Das Element wird in diesem Fall am Ende des Arrays angefügt.

$array = [1, 2, 3];
$array []= 4;

print_r($array);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

Einem assoziativen Array kannst du so ebenfalls neue Elemente hinzufügen.
Beachte, dass du hierfür zwischen den Klammern den neuen Schlüssel angeben musst.

$array = ['code'=>'citrus', 'foo'=>'bar'];
$array['Schluessel'] = 'Wert';

print_r($array);
// Array ( [code] => citrus [foo] => bar [Schluessel] => Wert )

2. array_push

Mit der Funktion array_push kannst du auch Elemente am Ende eines Arrays anhängen. Als ersten Parameter musst du dafür das zu erweiternde Array angeben. Jeder weitere Parameter, den du angibst, wird dem Array hinzugefügt.
Als Rückgabewert erhältst du die neue Gesamtanzahl an Elementen.

$array = [1, 2, 3];
$count = array_push($array, 4, 5);

echo $count;
// 5

print_r($array);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Leider funktioniert das mit assoziativen Arrays nicht so einfach.
Beim Versuch auf die folgende Art wird dem Array nur ein neuer Schlüssel hinzugefügt und ein Fehler ausgegeben:

$array = ['Code'=>'Citrus'];
array_push($array['foo'], 'bar');
print_r($array);

Output:

Warning: array_push() expects parameter 1 to be array, null given in C:\xampp\htdocs\codecitrus\array_push.php on line 15
Array ( [Code] => Citrus [foo] => )

Allerdings kannst du auch mehrdimensionalen Arrays Werte mit array_push hinzufügen. Der Rückgabewert entspricht hier der Gesamtanzahl der Elemente des inneren Arrays, zu dem neue Elemente hinzugefügt wurden.

$outer_array = [
    'inner_array_1' => ['foo'],
    'inner_array_2' => ['bar'],
];
$count = array_push($outer_array['inner_array_2'], 'baz');

print($count);
// 2

print_r($outer_array);
// Array ( [inner_array_1] => Array ( [0] => foo ) [inner_array_2] => Array ( [0] => bar [1] => baz ) )

3. array_unshift

Mit der Funktion array_unshift kannst du Elemente am Anfang eines Arrays hinzufügen. Der Rückgabewert ist auch hier wieder die Gesamtanzahl der Elemente des Arrays.

$array = [1, 2];
$count = array_unshift($array, 3, 4);

echo $count;
// 4

print_r($array);
// Array ( [0] => 3 [1] => 4 [2] => 1 [3] => 2 )

Auf mehrdimensionale Arrays lässt sich die Funktion ebenfalls anwenden wie array_push:

$array = [
    [1, 2],
    [3, 4]
];
$count = array_unshift($array[0], 42, 1024);

echo $count;
// 4

print_r($array);
// Array ( [0] => Array ( [0] => 42 [1] => 1024 [2] => 1 [3] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) )

4. array_merge

array_merge ist eine Funktion, die es dir möglich macht, Arrays miteinander zu verbinden.

$a = [3, 4];
$b = [1, 2];

$array = array_merge($a, $b);

print_r($array);
// Array ( [0] => 3 [1] => 4 [2] => 1 [3] => 2 )

Das kann unter Umständen nützlich sein, da bei der Verwendung von + auf zwei Arrays keine neuen Schlüssel hinzugefügt werden würden.

print_r($a + $b);
// Array ( [0] => 3 [1] => 4 )

Du kannst die Funktion ebenfalls auf assoziative Arrays anwenden.

$a = ['Code'=>'Citrus'];
$b = ['foo'=>'bar'];

$array = array_merge($a, $b);
print_r($array);
// Array ( [Code] => Citrus [foo] => bar )

Allerdings musst du auch hier bei mehreren gleichen Schlüsseln aufpassen, da nur ein Wert angenommen wird.

$a = ['Code'=>'foo'];
$b = ['Code'=>'bar'];

$array = array_merge($a, $b);
print_r($array);
// Array ( [Code] => bar )

Interessanterweise wird bei der Verwendung von + der Wert des ersten Arrays beibehalten, statt wie bei array_merge der des zweiten.

print_r($a + $b);
// Array ( [Code] => foo )

Mehrdimensionale Arrays lassen sich ebenfalls mit array_merge kombinieren.

$a = [
    [0, 1],
    [2, 3]
];
$b = [
    [4, 5],
    [6, 7]
];
$array = array_merge($a, $b);
print_r($array);

Output:

Array (
    [0] => Array ( [0] => 0 [1] => 1 )
    [1] => Array ( [0] => 2 [1] => 3 )
    [2] => Array ( [0] => 4 [1] => 5 )
    [3] => Array ( [0] => 6 [1] => 7 )
)

Bei einfacher Addition der beiden Arrays verhält sich das Ergebnis auch wie bei vorigen Versuchen: Der Wert für den Schlüssel des ersten Arrays wird beibehalten.
In diesem Beispiel ist das neu entstandene Array daher gleich dem als $a definierten.

print_r($a + $b);

Output:

Array (
    [0] => Array ( [0] => 0 [1] => 1 )
    [1] => Array ( [0] => 2 [1] => 3 )
)

5. Fazit – PHP [], array_push, array_unshift und array_merge

PHP stellt uns viele verschiedene Funktionen zum Erweitern und Vereinen unserer Arrays zur Verfügung.
Die Wahl der Funktion ist abhängig vom Typ des Arrays, dem wir was hinzufügen wollen.

Zudem gibt es noch die Funktion array_splice, mit der sich Werte hinzufügen, ersetzen und entfernen lassen. Mehr dazu kannst du in unserem Artikel dazu lesen.
CodeCitrus: Arrays mit array_splice manipulieren

Hast du Anmerkungen, Lob, Kritik, Fragen? Schreib es mir bitte in die Kommentare!



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren