Foros del Web » Programando para Internet » PHP »

Ayuda con array multidimensional

Estas en el tema de Ayuda con array multidimensional en el foro de PHP en Foros del Web. hola a todos estoy cargando datos de una db y los guardo en una array de esta manera. Código PHP: $var_x  = array(); while( $resultado_db  =  ...
  #1 (permalink)  
Antiguo 27/10/2010, 21:52
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 16 años, 1 mes
Puntos: 9
Ayuda con array multidimensional

hola a todos estoy cargando datos de una db y los guardo en una array de esta manera.
Código PHP:
$var_x = array();
while(
$resultado_db mysql_fetch_array($consulta)) {
$var_x['val1'] = $resultado_db['campo1'];
$var_x['val2'] = $resultado_db['campo2'];
$var_x['val3'] = $resultado_db['campo3'];

la estructura de esta array quedari asi:
Código PHP:
$var_x['val1'] = array('campo1_valor1','campo1_valor2'); 
es decir que la variable $var_x['val1'] me va a guardar todos los valores del mismo campo y asi sucesivamente $var_x['val2'].

hasta ahi voy bien, ahora lo que quiero hacer es imprimir todos los valor almacenados en la array, lo hago de esta manera:

Código PHP:
foreach($var_x as $var_x2) {
echo 
$var_x2['val1'];
echo 
$var_x2['val2'];
echo 
$var_x2['val3'];

pero no me imprime los datos guardados en ella.
la unica manera que en que si me funciona es esta:
Código PHP:
foreach($var_x as $var_x2) {
echo 
$var_x['val1'];
echo 
$var_x['val2'];
echo 
$var_x['val3'];

en esta imprimi cada valor del $var_x y no del $var_x2 en el bucle como se podran fijar

el problema es el siguiente cuando esa array multidimensional que contiene tres valores que son arrays
Código PHP:
array('valor1'=> array('valor'), 'valor2'=> array('valor'), 'valor3'=>array('valor')); 
la meto en un bucle, me imprime los valores pero me imprime el mismo valor 3 veces y no solo una como yo quiero que lo haga. alguien sabe como podria hacerlo.
espero que no se hayan enredado con esto. GRACIAS!!!
  #2 (permalink)  
Antiguo 28/10/2010, 00:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ayuda con array multidimensional

para nada es enredado, simplemente estas confundiendo arreglos indexados con asociativos, y sobre todo haces mal uso de foreach() para iterar arreglos que aún no comprendes...

muy a pesar de que lloverán ejemplos te invito a repasar el manual al respecto:
http://www.php.net/manual/en/language.types.array.php

ahí puedes observar que tipo de arreglo creas inicialmente -asociativo-
Código PHP:
// MAL
$foo['bar'] = $candy['does']; 
ahí solo estas copiando un índice de un arreglo al otro, y no creas en ningún momento otro arreglo como esperas:
Código PHP:
// BIEN
$foo []= array('x' => $candy['does'], 'y' => $candy['nothing']); 
pues así es como planteas tu formato -indexado-
Cita:
Iniciado por ColdFusion Ver Mensaje
la estructura de esta array quedari asi:
Código PHP:
$var_x['val1'] = array('campo1_valor1','campo1_valor2'); 
como puedes ver ambos arreglos son incompatibles...

en caso de ser asociativos así es como deberías usar el foreach()
Código PHP:
foreach ($foo as $bar)
{
  echo 
$bar['x'] . '<br />';
  echo 
$bar['y'] . '<br />';

en caso de ser indexado:
Código PHP:
foreach ($foo as $bar)
{
  echo 
$bar;

de verdad necesitas leer bastante bien el manual, y reflexionar sobre el tipo de dato que es un arreglo y sus variantes...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/10/2010, 09:25
Avatar de ColdFusion  
Fecha de Ingreso: octubre-2008
Ubicación: Tocoa, Colon Honduras C.A.
Mensajes: 419
Antigüedad: 16 años, 1 mes
Puntos: 9
Respuesta: Ayuda con array multidimensional

mira la cosa es que tengo que guardar, los datos de la db en la array..
imaginate que tenes un libro de visitas, eso tiene: nombre, email, website, fecha, comentario
entonces lo que hago es esto:
Código PHP:
$var_x['nombre'] = $row['nombre'];
$var_x['email'] = $row['email'];
$var_x['website'] = $row['website']; 
guardo todos los datos de la db de esa manera en la matriz, sabes o alguien sabe como imprimirlos, pero solo los valores.
  #4 (permalink)  
Antiguo 28/10/2010, 10:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ayuda con array multidimensional

Cita:
Iniciado por ColdFusion Ver Mensaje
guardo todos los datos de la db de esa manera en la matriz, sabes o alguien sabe como imprimirlos, pero solo los valores.
¡pero claro!!

es todo lo que ya te he dicho...

por favor, lee y aprende:
http://www.php.net/manual/en/language.types.array.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: multidimensional
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 17:42.