@ 2astalavista, eso no funciona: print_r($arr)=>Array ( [0] => a, [1] => b, [-1] => c )
laurent
@ returnnthis.lau_ este caso debe usar for loop, comenzando desde -1, para que funcione: for ($i = -1; $i < count($a)-1; $i++)como se muestra en el enlace de referencia, pero es fácil de olvidar, por lo que ya no prefiero esa solución.
¿Qué pasa si necesita claves literales, en lugar de numéricas?
Evan
44
@Evan, la documentación array_unshiftdice lo siguienteAll numerical array keys will be modified to start counting from zero while literal keys won't be touched.
creado el
1
Hay dos problemas: 1) reindexar la matriz 2) no se puede agregar un elemento con un índice.
Nabi KAZ
2
Si tiene una matriz asociativa o necesita preservar claves, vea los ejemplos de usuario aquí: php.net/manual/en/function.array-unshift.php. ¡ Hay algunos buenos ejemplos de cómo lograr esto!
Vallier
112
En el caso de una matriz asociativa o una matriz numerada en la que no desee cambiar las claves de la matriz:
¡Atención! "El operador + devuelve la matriz de la derecha añadida a la matriz de la izquierda; para las claves que existen en ambas matrices, se utilizarán los elementos de la matriz de la izquierda y se utilizarán los elementos coincidentes de la matriz de la derecha. ignorado ". - Ver: stackoverflow.com/a/2140094/3411766
cottton el
La solución es buena porque puede agregar un elemento con un índice y no reindexó la matriz; Pero tenga solo una nota sobre la eliminación del elemento en la matriz de la derecha, si hay el mismo índice en la matriz de la izquierda.
^ OBE: "W3Schools ha resuelto en gran medida estos problemas y ha abordado la mayoría de las preocupaciones de los desarrolladores que suscriben". ~ W3Fools.com
Andrew Kozak
4
Use array_unshift () para insertar el primer elemento en una matriz.
El usuario array_shift () elimina el primer elemento de una matriz.
$arr[-1] = $item;
Encontrado aquí: stackoverflow.com/a/15252657/669677print_r($arr)
=>Array ( [0] => a, [1] => b, [-1] => c )
for ($i = -1; $i < count($a)-1; $i++)
como se muestra en el enlace de referencia, pero es fácil de olvidar, por lo que ya no prefiero esa solución.Respuestas:
Use array_unshift ($ array, $ item);
Te regalaré
fuente
array_unshift
dice lo siguienteAll numerical array keys will be modified to start counting from zero while literal keys won't be touched.
En el caso de una matriz asociativa o una matriz numerada en la que no desee cambiar las claves de la matriz:
array_merge
no funciona, ya que siempre reindexa la matriz.fuente
Utilizar la función
array_unshift
fuente
Inserte un elemento al comienzo de una matriz asociativa con una cadena / clave de índice personalizada
RESULTADO
fuente
Esto ayudará
http://www.w3schools.com/php/func_array_unshift.asp
fuente
Use array_unshift () para insertar el primer elemento en una matriz.
El usuario array_shift () elimina el primer elemento de una matriz.
fuente
O puede usar una matriz temporal y luego eliminar la real si desea cambiarla durante el ciclo:
la salida será:
y cuando lo esté haciendo durante el ciclo, debe limpiar
$temp_array
después de agregar el elemento a la matriz.fuente
Con índice personalizado:
fuente
Para una matriz asociativa, puede usar merge.
fuente