variable una solo elemento destruir buscar array php arrays unset

php - una - unset laravel



Efecto del valor de PHP Unset Array en otros índices (6)

Ellos son como eran. Esa única tecla se acaba de borrar

Estoy trabajando con un bucle de PHP, y tenía una pregunta sobre cómo el desarmado afecta a las claves de la matriz. Esta matriz utiliza las teclas numéricas estándar asignadas por PHP, 0, 1, 2, 3 etc... Cuando unset() ejecuta en un valor de matriz, ¿se barajan las claves de matriz o se mantienen como antes?

Gracias por tu tiempo.


Esto podría estar un poco fuera de contexto, pero al desarmar los valores de una matriz global, aplique la respuesta de Michael Berkowski anterior pero en uso con $GLOBALS lugar del valor global que declaró con global $variable_name . Entonces será algo como:

unset($GLOBALS[''variable_name''][''array_key'']);

En lugar de:

global $variable_name; unset($variable_name[''array_key'']);

NB : esto funciona solo si está utilizando variables globales.


La clave desaparece, sea numérica o no. Pruebe el script de prueba a continuación.

<?php $t = array( ''a'', ''b'', ''c'', ''d'' ); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 1: b, 2: c, 3: d unset($t[1]); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 2: c, 3: d ?>


Las claves se mantienen con la clave eliminada, pero se pueden reorganizar al hacer esto:

$array = array(1,2,3,4,5); unset($array[2]); $arranged = array_values($array); print_r($arranged);

Salidas:

Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )

Tenga en cuenta que si hacemos lo siguiente sin reorganizar:

unset($array[2]); $array[]=3;

El índice del valor 3 será 5 porque se enviará al final de la matriz y no intentará verificar o reemplazar el índice faltante. Es importante recordar esto cuando se usa FOR LOOP con acceso de índice.


Las teclas no se barajan ni se vuelven a numerar. La tecla unset() simplemente se elimina y las otras permanecen.

$a = array(1,2,3,4,5); unset($a[2]); print_r($a); Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 )


Pruébelo usted mismo, pero aquí está la salida.

php -r ''$a=array("a","b","c"); print_r($a); unset($a[1]); print_r($a);'' Array ( [0] => a [1] => b [2] => c ) Array ( [0] => a [2] => c )