@ 2astalavista, to nie działa: print_r($arr)=>Array ( [0] => a, [1] => b, [-1] => c )
laurent
@ returnthis.lau_ w tym przypadku powinieneś użyć pętli for - zaczynając od -1 - aby to zadziałało: for ($i = -1; $i < count($a)-1; $i++)jak pokazał odnośnik, ale łatwo o tym zapomnieć, więc nie wolę już tego rozwiązania.
A co, jeśli potrzebujesz klawiszy dosłownych, a nie numerycznych?
Evan,
4
@Evan, dokumentacja array_unshiftmówi, co następujeAll numerical array keys will be modified to start counting from zero while literal keys won't be touched.
wyciągnięto
1
Są dwa problemy: 1) ponowne zindeksowanie tablicy 2) nie można dodać elementu z indeksem.
Nabi KAZ
2
Jeśli masz tablicę asocjacyjną lub potrzebujesz zachować klucze, zobacz przykłady użytkowników tutaj: php.net/manual/en/function.array-unshift.php jest kilka dobrych przykładów, jak to osiągnąć!
Vallier
112
W przypadku tablicy asocjacyjnej lub tablicy numerowanej, w której nie chcesz zmieniać kluczy tablicy:
Uwaga! Operator + zwraca tablicę po prawej stronie dołączoną do tablicy po lewej stronie; dla kluczy, które istnieją w obu tablicach, zostaną użyte elementy z tablicy po lewej stronie, a pasujące elementy z tablicy po prawej stronie będą ignorowane ”. - Zobacz: stackoverflow.com/a/2140094/3411766
Cottton
Rozwiązanie jest dobre, ponieważ można dodać element z indeksem i nie reindeksować tablicy; Ale mam tylko notatkę o usuwaniu elementu w tablicy po prawej stronie, jeśli jest taki sam indeks w tablicy po lewej stronie.
$arr[-1] = $item;
Znaleziono tutaj: stackoverflow.com/a/15252657/669677print_r($arr)
=>Array ( [0] => a, [1] => b, [-1] => c )
for ($i = -1; $i < count($a)-1; $i++)
jak pokazał odnośnik, ale łatwo o tym zapomnieć, więc nie wolę już tego rozwiązania.Odpowiedzi:
Użyj array_unshift ($ tablica, $ pozycja);
da tobie
źródło
array_unshift
mówi, co następujeAll numerical array keys will be modified to start counting from zero while literal keys won't be touched.
W przypadku tablicy asocjacyjnej lub tablicy numerowanej, w której nie chcesz zmieniać kluczy tablicy:
array_merge
nie działa, ponieważ zawsze reindeksuje tablicę.źródło
Użyj funkcji
array_unshift
źródło
Wstaw element na początku tablicy asocjacyjnej z ciągiem / niestandardowym kluczem indeksu
WYNIK
źródło
To pomoże
http://www.w3schools.com/php/func_array_unshift.asp
źródło
Użyj funkcji array_unshift (), aby wstawić pierwszy element do tablicy.
Użytkownik array_shift () usuwa pierwszy element tablicy.
źródło
Lub możesz użyć tymczasowej tablicy, a następnie usunąć prawdziwą, jeśli chcesz ją zmienić podczas cyklu:
wynik będzie następujący:
a kiedy robisz to w cyklu, powinieneś wyczyścić
$temp_array
po dołączeniu elementu do tablicy.źródło
Z indeksem niestandardowym:
źródło
W przypadku tablicy asocjacyjnej możesz po prostu użyć scalania.
źródło