Saltar al contenido

Intercambio array valores con php

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)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *