Problemas con arrays en PHP5
Publicado por Víctor (2 intervenciones) el 24/09/2007 13:42:30
for($i=0;$i<count($results);$i++) {
$this->loadCategoria($results[$i]);
$this->categoriab=new DaoCategories;
$this->categoriab=$this->categoria;
$acategories[$i]=$this->categoriab; }
$results es un array bidimensional donde he almacenado los resultados de una query. Con lo cual queda:
$result[registro][campo]
El loadCategoria carga los datos del registro $i en la variable $this->categoria. Como veis el proceso es sencillo y unicamente debería añadir un elemento al array por cada registro.
Mediante una serie de prueba he detectado lo siguiente.
Primer paso por el for el array final contiene el valor del primer registro. En el segundo paso el array contiene dos posiciones pero en ambas figura el valor del segundo registro y como ya habreis deducido en el tercer paso por el array este tiene 3 posiciones y en las 3 figura el valor del tercer registro.
La consulta devuelve 3 resultados. Si devolviera 4 logicamente sucedería lo mismo pero con el cuarto valor.
¿Porqué sucede esto? ¿Como puedo añadir valores a un array sin que sobreescriba los anteriores con el valor que le paso?
También decir que todo esto en PHP4 no sucedía. Sólo al pasar a PHP5.
Saludos y gracias de antemano.
$this->loadCategoria($results[$i]);
$this->categoriab=new DaoCategories;
$this->categoriab=$this->categoria;
$acategories[$i]=$this->categoriab; }
$results es un array bidimensional donde he almacenado los resultados de una query. Con lo cual queda:
$result[registro][campo]
El loadCategoria carga los datos del registro $i en la variable $this->categoria. Como veis el proceso es sencillo y unicamente debería añadir un elemento al array por cada registro.
Mediante una serie de prueba he detectado lo siguiente.
Primer paso por el for el array final contiene el valor del primer registro. En el segundo paso el array contiene dos posiciones pero en ambas figura el valor del segundo registro y como ya habreis deducido en el tercer paso por el array este tiene 3 posiciones y en las 3 figura el valor del tercer registro.
La consulta devuelve 3 resultados. Si devolviera 4 logicamente sucedería lo mismo pero con el cuarto valor.
¿Porqué sucede esto? ¿Como puedo añadir valores a un array sin que sobreescriba los anteriores con el valor que le paso?
También decir que todo esto en PHP4 no sucedía. Sólo al pasar a PHP5.
Saludos y gracias de antemano.
Valora esta pregunta


0