Foros del Web » Programando para Internet » PHP »

Eliminar un valor de una sesión array

Estas en el tema de Eliminar un valor de una sesión array en el foro de PHP en Foros del Web. Tengo esto pero no hace nada. Tengo una sesión $_SESSION['prod'] $goma=$row_borrar['ano']; // Este valor es siempre un valor nunca es un array $goma=2000; foreach ($_SESSION['prod'] ...
  #1 (permalink)  
Antiguo 08/07/2011, 12:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 15 años, 5 meses
Puntos: 2
Eliminar un valor de una sesión array

Tengo esto pero no hace nada.
Tengo una sesión $_SESSION['prod']


$goma=$row_borrar['ano'];
// Este valor es siempre un valor nunca es un array
$goma=2000;
foreach ($_SESSION['prod'] as $po => $value){
if ($goma==$value) unset($value);

}
echo '<p></p>';
var_dump ($_SESSION[prod']);
?>

array(3) { [0]=> string(7) "2000" [1]=> string(7) "1914" [2]=> string(7) 756" }
Pero haciendo var_dump siempre está en al array el valor 2000 coincidente, no lo elimina.
  #2 (permalink)  
Antiguo 08/07/2011, 13:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Eliminar un valor de una sesión array

Sucede que foreach() trabaja con una copia del arreglo que le pasas, por eso no estás borrando realmente nada, solo la variable temporal dentro del bucle.

Para eliminar con precisión el índice de la sesión deberías hacer algo así:
Código PHP:
unset($_SESSION['prod'][$po]); 
Ya que $po es el índice a borrar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/07/2011, 14:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 168
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Eliminar un valor de una sesión array

Gracias, ha funcionado.

Etiquetas: sesión
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:24.