Foros del Web » Programando para Internet » PHP »

Ayuda con arrays multidimensionales

Estas en el tema de Ayuda con arrays multidimensionales en el foro de PHP en Foros del Web. Hola, me gustaría saber como puedo crear una matriz de dos arrays y rellenarla de forma dinámica indexando el primer elemento de forma asociativa y ...
  #1 (permalink)  
Antiguo 05/09/2007, 05:10
 
Fecha de Ingreso: diciembre-2004
Mensajes: 19
Antigüedad: 19 años, 4 meses
Puntos: 0
Ayuda con arrays multidimensionales

Hola,

me gustaría saber como puedo crear una matriz de dos arrays y rellenarla de forma dinámica indexando el primer elemento de forma asociativa y el segundo con un contador (como en el ejemplo que pongo).

He visto un montón de ejemplos en los que se crea la estructura y te explican como recorrerla, pero los datos se crean cuando se crea el array, algo así:

$shop = array ("mensaje" => array ("tipo1" => "Hola mundo"), "estado" => array ("error1" => "fallo en la query"));

y yo lo que quiero es hacer algo del tipo:

$shop = array ("mensaje" => array (), "estado" => ());

tal que luego pueda indexar de la siguiente manera para insertar elementos:

$shop ["mensaje"][] = "Hola mundo";
$shop ["estado"][] = "fallo en la query";

y recorrerlos de esta otra:

for ($cont = 0; $cont < count ($shop ["mensaje"]); $cont ++)
echo $shop ["mensaje"][$cont];

El caso es que no encuentro la sintaxis correcta o no se si es posible hacer algo así.

Con vectores se que se puede hacer un vector dinámico de la siguiente forma:

$shop[] = "valor";

y luego recorrerlos con un for indexando con el contador del for, pero con matrices... ????

Gracias.
  #2 (permalink)  
Antiguo 05/09/2007, 05:41
 
Fecha de Ingreso: septiembre-2006
Mensajes: 59
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Ayuda con arrays multidimensionales

Cita:
Iniciado por borix69 Ver Mensaje
Hola,

me gustaría saber como puedo crear una matriz de dos arrays y rellenarla de forma dinámica indexando el primer elemento de forma asociativa y el segundo con un contador (como en el ejemplo que pongo).

He visto un montón de ejemplos en los que se crea la estructura y te explican como recorrerla, pero los datos se crean cuando se crea el array, algo así:

$shop = array ("mensaje" => array ("tipo1" => "Hola mundo"), "estado" => array ("error1" => "fallo en la query"));

y yo lo que quiero es hacer algo del tipo:

$shop = array ("mensaje" => array (), "estado" => ());

tal que luego pueda indexar de la siguiente manera para insertar elementos:

$shop ["mensaje"][] = "Hola mundo";
$shop ["estado"][] = "fallo en la query";

y recorrerlos de esta otra:

for ($cont = 0; $cont < count ($shop ["mensaje"]); $cont ++)
echo $shop ["mensaje"][$cont];

El caso es que no encuentro la sintaxis correcta o no se si es posible hacer algo así.

Con vectores se que se puede hacer un vector dinámico de la siguiente forma:

$shop[] = "valor";

y luego recorrerlos con un for indexando con el contador del for, pero con matrices... ????

Gracias.

Has provado darle el valor al otro punto del array?

$shop ["mensaje"][]

Es decir

$shop = Array();

$shop["mensaje"] = Array();

$shop["mensaje"]["mensaje1"] = "tu valor";

Saludos
  #3 (permalink)  
Antiguo 05/09/2007, 05:58
 
Fecha de Ingreso: diciembre-2004
Mensajes: 19
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Ayuda con arrays multidimensionales

Muchas gracias Thonso22, ya lo he conseguido. Lo he hecho de la siguiente forma:

Creo la estructura con:

$resultadoQuery = Array();
$resultadoQuery ["mensaje"] = Array();
$resultadoQuery ["estado"] = Array();

Meto valores con:

$resultadoQuery ["mensaje"][] = "Hola mundo";
$resultadoQuery ["estado"][] = "ok";

Recorro los valores:

for ($contador = 0; $contador < count ($resultadoOperacion ["mensaje"]); $contador ++)
echo $resultadoOperacion ["mensaje"][$contador] . " --- " . $resultadoOperacion ["estado"][$contador];

Un saludo.
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 02:52.