Foros del Web » Programando para Internet » PHP »

modificar un array

Estas en el tema de modificar un array en el foro de PHP en Foros del Web. tengo un array registrado en la session por ejemplo cuando leo los resultados me debuelve Adrian Paola Hernan Leonardo y en un momento quiero cambiar ...
  #1 (permalink)  
Antiguo 22/06/2003, 19:47
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 15 años, 1 mes
Puntos: 2
modificar un array

tengo un array registrado en la session por ejemplo cuando leo los resultados me debuelve
Adrian
Paola
Hernan
Leonardo

y en un momento quiero cambiar un nombre por ejemplo quiero sacar a Paola y poner Mariana y me quede grabado en la session como combio el valor de Paola dentro del array
  #2 (permalink)  
Antiguo 22/06/2003, 21:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues buscas la "key" (clave) de tu valor "paola" en ese array y lo usas para reasignar su nuevo valor.

Código PHP:
<?
// tu array ($array=$_SESSION['tu_array_de_la_session']; .. o como la obtengas ..)
$array=array("pepe","juan","paula");

// Obtener la clave (indice, Key) de tu elemento que buscas.
// array_keys entrega un array con las coincidencias.
$clave=array_keys($array,"paula");

// asignamos el nuevo valor.
$array[$clave[0]]="nuevo valor";

// Leemos el array para comprobar que todo ha ido bien ...
foreach ($array as $clave => $valor){
    echo 
$clave." --> ".$valor."<br>";
}
?>

Una vez modificada el array .. la registras nuevamente en tu sesión (ya sea $_SESSSION['array']=$array; o session_register("array"); ..)


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 23/06/2003, 03:32
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
No lo especificas pero me supongo que los nombres no estan repetidos y que existen dentro del arreglo, lo comento por que si no existen y usas array_keys te devolvera un valor no definido para la llave del arreglo y te mandara un aviso el interprete de php. Para el caso de que esten repetidos, el problema sera en el momento en que reasignas el valor para el arreglo en la posicion que estas buscando, puede ser que asignes en valor donde no debas. Para solucionarlo sugeriria que probaras primero que el valor de busqueda no este repetido un ejemplo.
Código PHP:
$buscar 'Paola'// nombre a buscar
// arreglo que tienes en tu sesion
$arr = array('Adrian','Paola','Hernan','Leonardo');
// buscas que el nombre no este repetido,
// si esta repetido termina el programa
if( sizeofarray_keys$arr$buscar) ) > )
    exit( 
"sesion duplicada!! </br>\n" );
// reasignas el nuevo valor en la posicion
// que necesitas
$arrarray_search$buscar$arr ) ] = 'Mariana';
// vemos el nuevo contenido
print_r$arr ); 
array_keys busca el nombre y la condicion determina si esta duplicado o no dentro del arreglo, si la condicion pasa sin problemas entonces mediante array_search obtengo la posicion en la que se encuentra el nombre que voy a cambiar en el arreglo y se lo paso al arreglo mismo y asigno el nuevo valor.

Última edición por Herminio Heredia San; 23/06/2003 a las 09:51
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 21:32.