¿Cuál sería el mejor método para mover cualquier elemento de una matriz asociativa al principio de la matriz?
Por ejemplo, digamos que tengo la siguiente matriz:
$myArray = array(
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'one' => 'Blah Blah Blah 1',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
Lo que quiero hacer es mover el elemento 'uno' al principio y terminar con la siguiente matriz:
$myArray = array(
'one' => 'Blah Blah Blah 1',
'two' => 'Blah Blah Blah 2',
'three' => 'Blah Blah Blah 3',
'four' => 'Blah Blah Blah 4',
'five' => 'Blah Blah Blah 5',
);
Si tiene claves de matriz numéricas y desea volver a indexar las claves de matriz, sería mejor ponerlo
array_merge
así:fuente
Un poco tarde, pero en caso de que alguien lo necesite, creé este pequeño fragmento.
Simplemente ajústelo para que se adapte a sus necesidades o utilícelo y desarme el índice para moverlo. También funciona con matrices asociativas.
fuente
Aquí hay otra frase simple que hace esto usando
array_splice()
:fuente
si tiene 2 matrices, la primera tiene elementos para mover a la parte superior de la segunda matriz de elementos, puede usar
Aquí hay una muestra de código:
fuente
Hay una función en los comentarios del manual de PHP para array_unshift que se puede usar para agregar un elemento, con clave, al comienzo de una matriz:
Desarme el elemento y vuelva a insertarlo con la función anterior:
Un enfoque más general puede ser usar uksort para ordenar su matriz por claves y proporcionar una función de clasificación propia.
fuente
return = array_reverse($arr, true);