2016-12-22 6 views
0

Folgende SSCCE druckt:Insertion am Anfang des Array Union Operator - neues Element überschreiben (vorher) erste Element des Arrays

Array ([0] => FLAT [1] => A [2] => B [3] => C [4] => D [5] => E [6] => F [7] => G [8] => H [9] => I [10] => J)

Was ich wollte:

Was ich wollte, war ein Element mit einem Wert von "flat" am Anfang des Arrays einfügen, dh ich wollte "flat" eingefügt werden, um Index 0, und der Rest von Die Elemente sollten sich um eine Position nach rechts bewegen, um eine freie Position für das Einfügen am Anfang des Arrays zu erhalten.

Also habe ich versucht, den Union-Operator zu verwenden. source

Was ich bekommen habe:

Aber was eigentlich passiert war, dass das erste Element des Arrays, "id", überschreiben/ersetzt wurde durch das neu eingeführte Element.

Die Frage ist, warum passiert das und was soll ich tun, um zu erreichen, was ich brauche?

$array = array(
    0 => "id", 
    1 => "A", 
    2 => "B", 
    3 => "C", 
    4 => "D", 
    5 => "E", 
    6 => "F", 
    7 => "G", 
    8 => "H", 
    9 => "I", 
    10 => "J" 
); 

$arrayNew = array("flat") + $array; 

print_r($array_new); 

Antwort

2

Aus dem Handbuch Array Operators:

Der Operator + gibt das rechte Array zurück, das an das linke Array angehängt ist. Für Schlüssel, die in beiden Arrays vorhanden sind, werden die Elemente aus dem linken Array verwendet und die übereinstimmenden Elemente aus dem rechten Array werden ignoriert.

Versuche array_unshift() das Array zu ändern:

array_unshift($array, array("flat")); 

Oder array_merge():

$arrayNew = array_merge(array("flat"), $array); 
1

Verwendung array_merge()

$array = array(
    0 => "id", 
    1 => "A", 
    2 => "B", 
    3 => "C", 
    4 => "D", 
    5 => "E", 
    6 => "F", 
    7 => "G", 
    8 => "H", 
    9 => "I", 
    10 => "J" 
); 

$arrayNew = array_merge(array("flat"), $array); 

print_r($arrayNew); 

Array ([0] => flat [1] => id [2] => A [3] => B [4] => C [5] => D [6] => E [7] => F [8] => G [9] => H [10] => I [11] => J)

0

Verwendung array_unshift die Elemente am Anfang des Arrays hinzugefügt werden.

$ arr = Array ([0] => FLACH 1 => A [2] => B [3] => C [4] => D [5] => E [6] => F [ 7] => G [8] => H [9] => I [10] => J);

array_unshift ($ arr, "flach");

php array_unshift manual

Verwandte Themen