webentwicklung-frage-antwort-db.com.de

Wie füge ich ein Element am Anfang eines Arrays in PHP ein?

Ich weiß, wie man es bis zum Ende einfügt:

$arr[] = $item;

Aber wie fügt man es an den Anfang ein?

115
web

Verwenden Sie array_unshift ($ array, $ item);

$arr = array('item2', 'item3', 'item4');
array_unshift($arr , 'item1');
print_r($arr);

werde dir geben

Array
(
 [0] => item1
 [1] => item2
 [2] => item3
 [3] => item4
)
201
Trav L

Bei einem assoziativen Array oder einem nummerierten Array, bei dem Sie die Array-Schlüssel nicht ändern möchten:

$firstItem = array('foo' => 'bar');

$arr = $firstItem + $arr;

array_merge funktioniert nicht, da das Array immer neu indiziert wird.

76
tihe

Verwenden Sie die Funktion array_unshift

5
MaxiWheat

Verwenden Sie array_unshift () , um das erste Element in ein Array einzufügen.

User array_shift () to entfernt das erste Element eines Arrays.

3
Vinit Kadkol
3
DarthVader

Oder Sie können ein temporäres Array verwenden und dann das echte Array löschen, wenn Sie es im Zyklus ändern möchten:

$array = array(0 => 'a', 1 => 'b', 2 => 'c');
$temp_array = $array[1];

unset($array[1]);
array_unshift($array , $temp_array);

die Ausgabe wird sein:

array(0 => 'b', 1 => 'a', 2 => 'c')

und wenn Sie es während des Zyklus tun, sollten Sie $temp_array reinigen, nachdem Sie das Element an das Array angehängt haben.

2
Arnas Pečelis

Fügen Sie ein Element am Anfang eines assoziativen Arrays mit einem String/benutzerdefinierten Indexschlüssel ein

<?php

$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];

$array = array_reverse($array);

$array['newKey'] = 'newValue';

$array = array_reverse($array);

ERGEBNIS

[
  'newKey' => 'newValue',
  'keyOne' => 'valueOne',
  'keyTwo' => 'valueTwo'
]
2
Manish Dhruw

Mit benutzerdefiniertem Index:

$arr=array("a"=>"one", "b"=>"two");
    $arr=array("c"=>"three", "d"=>"four").$arr;

    print_r($arr);
    -------------------
    output:
    ----------------
    Array
    (
    [c]=["three"]
    [d]=["four"]
    [a]=["two"]
    [b]=["one"]
    )
0