Foros del Web » Programando para Internet » PHP »

Array Multidimensional

Estas en el tema de Array Multidimensional en el foro de PHP en Foros del Web. Buenas Tardes: Yo necesitaría armar algo así: $aa =array(1001=>'buenos aires',array(2001=>'lanus',2002=>'lomas')); $aa[]=array(1002=>'capital',array(2003=>'barracas',2004 =>'boedo')); Sería un array de 'provincias', dentro del cual esta el de 'localidades', o ...
  #1 (permalink)  
Antiguo 17/09/2012, 14:22
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Array Multidimensional

Buenas Tardes:

Yo necesitaría armar algo así:

$aa =array(1001=>'buenos aires',array(2001=>'lanus',2002=>'lomas'));
$aa[]=array(1002=>'capital',array(2003=>'barracas',2004 =>'boedo'));

Sería un array de 'provincias', dentro del cual esta el de 'localidades', o sea una provincia tiene muchas localidades

los datos salen de tablas MySQL, tendría que preguntar por cada 'localidad' leida si ya esta cargada, si no esta hay que cargarla igual con su provincia.

Estoy haciendo algunas pruebas pero no me doy cuenta como.

Le agradecería a algún experto que me ayude con esto.
  #2 (permalink)  
Antiguo 17/09/2012, 14:35
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Array Multidimensional

Pues si colocas algo de tu código, como por ejemplo la forma en que tienes tus tablas....
  #3 (permalink)  
Antiguo 17/09/2012, 14:41
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array Multidimensional

Sería algo masomenos así:

Iría dentro de esto:

$obj_Consulta=new sQuery();
$consulta=$obj_Consulta->executeQuery("SELECT idlocalidad,idprovincia FROM localidades order by 1");
$mapa=array();
while($registro=mysql_fetch_row($consulta))
{

// ACA, tendría que buscar en $mapa, si la localidad no esta cargada tendría que cargarla, igual con su provincia.

}

Muchas Gracias por tu tiempo
  #4 (permalink)  
Antiguo 17/09/2012, 14:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Array Multidimensional

Si lo que tienes en tu consulta son ids, necesitas indicar de dónde o como obtienes el nombr de la localidad, de lo contrario con esa consulta tan sólo se podrán relacionar ids de localidades con ids de provincias.
  #5 (permalink)  
Antiguo 17/09/2012, 14:51
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array Multidimensional

Es a modo de ejemplo, los Id serian las claves y mostraría los nombres en las consultas:

$aa =array(1001=>'buenos aires',array(2001=>'lanus',2002=>'lomas'));
$aa[]=array(1002=>'capital',array(2003=>'barracas',2004 =>'boedo'));

Ejemplo 1001 es el Id de la provincia 'buenos aires' y 2001 y 2002 son los Ids de las localidades de esa provincia.

No se si conviene hacerlo con un array multidimensional o con 2 arrays relacionados por el idprovincia.

Creo que me explico. Gracias por tu tiempo
  #6 (permalink)  
Antiguo 17/09/2012, 14:55
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Array Multidimensional

Es que desconozco tu nivel de conocimientos, por lo que te pregunto lo del nombre textual de las localidades. Si te sirve con los id, sería algo así de simple:

Código PHP:
Ver original
  1. while($registro=mysql_fetch_row($consulta))
  2.    $mapa[$registro['idlocalidad']][]=$registro['idprovincia'];
Te daría un array como este:

Código array:
Ver original
  1. $mapa=array(
  2.    1001=array(
  3.      2001,2002,2003
  4.     )
  5. )

Aunque así, no estoy seguro que es lo que buscas.
  #7 (permalink)  
Antiguo 17/09/2012, 15:19
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array Multidimensional

Estoy aprendiendo a hacer estos tipos de arrays, hasta ahora siempre trabaje con tipo vectores.

Sii, nos estamos acercando, mis preguntas son:

1-) Como podría saber si esa localidad esta cargada en el array para no volver a cargar la misma??
2-) Tendría que tener una columna con el nombre de la localidad y otra con la cantidad de registros para sumarle 1 por cada vez

la salida seria algo así:

Buenos aires (5)
Lanus (3)
Lomas (2)

Capital Federal (10)
Boedo (3)
Barracas (7)

Muchas Gracias por tu ayuda.
  #8 (permalink)  
Antiguo 17/09/2012, 15:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Array Multidimensional

Si usas los array de la forma en que te ejemplifiqué, no necesitas verificar nada. No sé para qué quieres sumar, pero necesitas indicar con un ejemplo claramente el arreglo final que quieres conseguir y de dónde extraes los datos, ya que así, "nos estamos acercando" es dar palos de ciego y es innecesario.
  #9 (permalink)  
Antiguo 17/09/2012, 15:37
Usuario no validado
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires
Mensajes: 413
Antigüedad: 15 años
Puntos: 3
Respuesta: Array Multidimensional

El arreglo final sería algo así:

idprovincia1 nombreprovincia1 cantidadprovincia1
idlocalidad1 nombrelocalidad1 cantidadlocalidad1
idlocalidad2 nombrelocalidad2 cantidadlocalidad2

idprovincia2 nombreprovincia2 cantidadprovincia2
idlocalidad3 nombrelocalidad3 cantidadlocalidad3
idlocalidad4 nombrelocalidad4 cantidadlocalidad4

Esto habría que cargarlo al leer la tabla de publicaciones.
Las cantidades son las cantidades de registros de publicaciones por cada provincia o localidad, por eso no se tienen que repetir, cada vez que graba una provincia o localidad la cantidad es 1 y al encontrar otro registro con esa misma provincia o localidad tiene que buscarlo, encontrarlo y sumarle 1.

Creo que fui un poco mas claro, ojala lo podamos resolver.

Muchas Gracias

Etiquetas: multidimensional, mysql, tabla
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

SíEste tema le ha gustado a 1 personas




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