veröffentlicht am: 07.05.2020 zuletzt aktualisiert am: 07.02.2023
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.
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 )
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 ) )
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 ) )
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);
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);
Array ( [0] => Array ( [0] => 0 [1] => 1 ) [1] => Array ( [0] => 2 [1] => 3 ) )
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.codegree: Arrays mit array_splice manipulieren
Hast du Anmerkungen, Lob, Kritik, Fragen? Schreib es mir bitte in die Kommentare!
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig