Foros del Web » Programando para Internet » PHP »

problema con array multidimensional de objetos

Estas en el tema de problema con array multidimensional de objetos en el foro de PHP en Foros del Web. Hola, tengo una duda, q no se muy bien porque me está sucediendo Tengo un array con las distintas comunidades de españa: $comunidades=array("01","02","03","04","05","06"," 07","08","09","10","11","12","13","14","15","16"," 17","18"); ...
  #1 (permalink)  
Antiguo 15/06/2005, 08:12
 
Fecha de Ingreso: junio-2004
Mensajes: 101
Antigüedad: 19 años, 10 meses
Puntos: 0
problema con array multidimensional de objetos

Hola, tengo una duda, q no se muy bien porque me está sucediendo

Tengo un array con las distintas comunidades de españa:

$comunidades=array("01","02","03","04","05","06"," 07","08","09","10","11","12","13","14","15","16"," 17","18");

hasta ahi bien, pero ahora en cada posición del vector quiero almacenar objetos que contienen la posición de una determinada figura en el mapa. Para ello hago lo siguiente:

$comunidades["01"][0]=$delAnd;
$comunidades["01"][1]=$delAnd2;
$comunidades["01"][2]=$delAnd3;
$comunidades["01"][3]=$delAnd4;
//aragón
$comunidades["02"][0]=$delAr;
//Castilla y León
$comunidades["08"][0]=$delLeon;
$comunidades["08"][1]=$delLeon2;
//cataluña
$comunidades["09"][0]=$delCat;

//extremadura
$comunidades["10"][0]=$delExt;
//galicia
$comunidades["11"][0]=$delGal;
//madrid
$comunidades["12"][0]=$delMa;
//murcia
$comunidades["13"][0]=$delMur;
$comunidades["13"][1]=$delMur2;
//com. valenciana
$comunidades["16"][0]=$delVal;
$comunidades["16"][1]=$delVal2;

lo que le asigno son objetos ya declarados que contienen unas determinadas coordenadas.
Si ahora muestro el valor del vector por pantalla obtengo carácteres raros en algunas posiciones:
for($j=0;$j<sizeof($comunidades);$j++)
{
$idCom=$comunidades[$j];
echo $idCom."<br>";
}
Al hacer este bucle obtengo:

01
02
03
04
05
06
07
08
09
10
O1
O2
O3
OO
15
16
OO
18

Porque en la posición 11 obtengo O1, en la 12 O2, etc. y no me muestra 01 ,02,03, hasta llegar a 18?

No entiendo muy bien que esta pasando. Alguien sabe en que me estoy equivocando a la hora de asignar los objetos al vector?

Gracias
  #2 (permalink)  
Antiguo 15/06/2005, 22:22
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Código PHP:
<?php

$comunidades 
= array("01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18");

echo 
count($comunidades)."<br><br>";

var_dump($comunidades);

echo 
"<br><br>";

$comunidades["01"][0]=1;
$comunidades["01"][1]=2;
$comunidades["01"][2]=3;
$comunidades["01"][3]=4;
//aragón
var_dump($comunidades);
echo 
"<br><br>";

$comunidades["02"][0]=1;
//Castilla y León
$comunidades["08"][0]=1;
$comunidades["08"][1]=1;
//cataluña
$comunidades["09"][0]=1;

//extremadura
$comunidades["10"][0]=1;
//galicia
$comunidades["11"][0]=1;
//madrid
$comunidades["12"][0]=1;
//murcia                <------- AQUI *
$comunidades["13"][0]=2;
$comunidades["13"][1]=5;
//com. valenciana           <------- AQUI**
$comunidades["16"][0]=5;
$comunidades["16"][1]=5;

for(
$j=0;$j<sizeof($comunidades);$j++)
{
$idCom=$comunidades[$j];
echo 
$idCom."<br>";
}

var_dump($comunidades);
?>
buenas, q tal he modificado tu script para tratar de debugear un error q no existe explicitamente... porq digo esto, la razon de esto no la se, yo hubiera trabajado de otra forma, pero no viene al caso, he notado algo bastante curioso mira esta es la salida del script modificado....
Código:
01
02
03
04
05
06
07
08
09
10
11
12
13
25      <--------- AQUI *
15
16
55      <--------- AQUI **
18
al parecer, cuando un elemento de un array es otro array, trabaja de forma incorrecta, alguna explicacion a esto debe haber, todavia no me puse a buscar en el manual oficial de php, pero vamos a la cosa curiosa, donde marco con un (*) deberia ir el 14 aparece un 25, al parecer junta los dos elementos (osea $comunidades["14"][0] y $comunidades["14"][1]) de igual manera sucede donde tendria q apareces 17 (**), la solucion no la encontre pero hay algun avance....

tengo otra cosa para resaltar, vos al array y el bucle es medio raro tu manejo... creo q seria mas facil si en el array principal la posición sea igual al valor, digo esto porq es mas facil al ver los problemas a simple vista... podrias forzar el array a cumplir con esto comenzando el array de esta manera
Código PHP:
$comunidades = array ( => "01""02","03","04" ..................."18"); 
de esta manera cuando ejecutes el bucle (for) $j valga lo mismo q el elemento, de esta manera el bucle tendria q empezar con $j = 1... bueno espera q esto sirva para esto, y me pongo a buscar informacion sobre esto, a ver si se encuentra alguna respuesta concreta... salu2...
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 07:09.