Foros del Web » Programando para Internet » PHP »

Formar un array asociativo a partir de uno con indices

Estas en el tema de Formar un array asociativo a partir de uno con indices en el foro de PHP en Foros del Web. Hola a todos en el foro, espero me puedan ayudar con este incoveniente: Tengo un array que se encuentra en la siguiente forma: Array( [0] ...
  #1 (permalink)  
Antiguo 07/11/2010, 22:11
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 0
Formar un array asociativo a partir de uno con indices

Hola a todos en el foro, espero me puedan ayudar con este incoveniente:
Tengo un array que se encuentra en la siguiente forma:
Array(
[0] => codigo
[1] => 2
[2] => nombre
[3] => Jameson
[4] => apellido
[5] => Villanueva
)

A partir de una estructura de este tipo deseo llegar a un array asociativo de la sigt forma
Array(
[codigo] => 2
[nombre] => Jameson
...
)


La verdad ando algo perdido, he llegado a algo similar con las siguientes lineas de codigo


foreach ($parameters as $key => $value) {
$ret[$value] = $parameters[++$key];
unset($ret[$key]);
}
array_pop($ret);

Pero el problema se presenta al hacer la sigt iteracion no me guarda las parejas llave->valor de la manera espera,


favor ayudarme

De antemano gracias por la atencion prestada
  #2 (permalink)  
Antiguo 08/11/2010, 06:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Formar un array asociativo a partir de uno con indices

hola jamesonluis,

si he entendido bien, lo que tienes es un array con el siguinte formato:

arr[0]=clave
arr[1]=valor
arr[2]=clave
arr[3]=valor
....
arr[n]=clave
arr[n]=valor

y lo que quieres es que los elementos de arr que tienen como valor "clave" pasen a ser la clave en otro nuevo array y los que tienen como valor "valor" sean el valor del nuevo array.

prueba con el siguiente código

Código:
nuevo_arr=array();
for($i=0;$i<count(arr);$i+=2)
{
nuevo_arr[arr[$i]]=arr[$i+1];
}

Etiquetas: formar, indices, partir
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 11:57.