So kannst du Werte zu Arrays hinzufügen in PHP

    Logo der Programmiersprache PHP
    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 07.05.2020
    zuletzt aktualisiert am: 07.02.2023

    So fügst du Werte zu einem PHP Array hinzu!

    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.

    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 )

    PHP 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 ) )

    PHP 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 ) )

    PHP 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 )
    )

    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.
    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.

    TP Star TP Star TP Star TP Star TP Star

    "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

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig