Intenta comprender el código de forma correcta antes de adaptarlo a tu proyecto y si tdeseas aportar algo puedes dejarlo en la sección de comentarios.
Solución:
Escribí una función simple array_swap
: intercambiar dos elementos entre posiciones swap_a
& swap_b
.
function array_swap(&$array,$swap_a,$swap_b)
list($array[$swap_a],$array[$swap_b]) = array($array[$swap_b],$array[$swap_a]);
Para la pregunta OP (por ejemplo):
$items = array(
0 => 'contact',
1 => 'home',
2 => 'projects'
);
array_swap($items,0,1);
var_dump($items);
// OUTPUT
array(3)
[0]=> string(4) "home"
[1]=> string(7) "contact"
[2]=> string(8) "projects"
Actualizar
Desde PHP 7.1 es posible hacerlo así:
$items = [
0 => 'contact',
1 => 'home',
2 => 'projects'
];
[$items[0], $items[1]] = [$items[1], $items[0]];
var_dump($items);
// OUTPUT
array(3)
[0]=> string(4) "home"
[1]=> string(7) "contact"
[2]=> string(8) "projects"
Es posible a través de Symmetric array desestructurando
Prueba esto:
$a = array(
0 => 'contact',
1 => 'home',
2 => 'projects'
);
$temp = $a[0];
$a[0] = $a[1];
$a[1] = $temp;
Simplemente use una variable temporal para mantener un valor mientras cambia el otro. Luego restaure el primero con la variable temporal. Para los números, existen otros métodos que no requieren el uso de variables temporales, pero aquí es la mejor (¿única?) forma.
$a = array(
0 => 'contact',
1 => 'home',
2 => 'projects'
);
print_r($a);
Array ( [0] => contact [1] => home [2] => projects )
$tmp = $a[0];
$a[0] = $a[1];
$a[1] = $tmp;
print_r($a);
Array ( [0] => home [1] => contact [2] => projects )
Reseñas y valoraciones de la guía
Tienes la posibilidad mostrar esta división si te fue de ayuda.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)