Foros del Web » Programando para Internet » PHP »

PHP OO Problema recorriendo array en PHP

Estas en el tema de Problema recorriendo array en PHP en el foro de PHP en Foros del Web. Mi problema es el siguiente, estoy tratando de recorrer un array que llega por session, y al momento de querer recorrerlo con foreach tira error, ...
  #1 (permalink)  
Antiguo 26/05/2012, 20:00
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema recorriendo array en PHP

Mi problema es el siguiente, estoy tratando de recorrer un array que llega por session, y al momento de querer recorrerlo con foreach tira error, pero con print_r la informacion se ve, alguna ayuda por favor?


El error que tira es este:
Array ( [0] => Item Object ( [name:private] => Pera [value:private] => 15 ) [1] => Item Object ( [name:private] => Banana [value:private] => 5 ) [2] => Item Object ( [name:private] => Manzana [value:private] => 10 ) )
Catchable fatal error: Object of class Item could not be converted to string in C:\AppServ\www\p1\juego.php on line 9

Código PHP:
<?php
require_once ("servicios/controladorItems.php");

$_SESSION["itemJuego"];
print_r ($itemJuego);

foreach(
$itemJuego as $k => $v ){
  echo 
$k.' = '.$v.'<br>';
}

?>
Desde ya gracias.
  #2 (permalink)  
Antiguo 26/05/2012, 20:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 127
Antigüedad: 17 años, 6 meses
Puntos: 5
Respuesta: Problema recorriendo array en PHP

El problema está en $v, no puedes imprimirlo como un string, ya que es un objeto. Lo que puedes hacer es hacer otro foreach sobre $v (todo dentro del primer foreach), o imprimir uno de los valores de objeto.

Caso 1:

Código PHP:
<?php
require_once ("servicios/controladorItems.php");

$_SESSION["itemJuego"];

foreach(
$itemJuego as $k => $v ){
    echo 
$k.' = '.$v->name.'<br>';
}

?>
Caso 2:
Código PHP:
<?php
require_once ("servicios/controladorItems.php");

$_SESSION["itemJuego"];

foreach(
$itemJuego as $k => $v ){
    foreach(
$v as $n => $u){
        echo 
$k.' = '.$n.' = '.$u.'<br>';
    }
}

?>
  #3 (permalink)  
Antiguo 26/05/2012, 20:34
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Yo denuevo, lei tu explicacion y no comprendi el por que del error sin embargo utilize la opcion numero 2 de foreachs anidados y no imprime nada

Desde ya muchas gracias.
  #4 (permalink)  
Antiguo 26/05/2012, 20:47
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema recorriendo array en PHP

Simplemente un objeto no lo puedes imprimir en pantalla así por así con un echo, ahora que es lo que realmente con el objeto que tienes dentro del arreglo??, si lo quieres imprimir, siempre puedes usar el método __toString()
prueba y nos comentas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 26/05/2012, 20:56
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Y cual es entonces el metodo para recorrer un objeto al mejor estilo de un array??
Probe asi tambien pero nada...
Código PHP:
foreach($itemJuego as $k){
        foreach (
$k as $u){
        echo 
$u;
            }
        } 
  #6 (permalink)  
Antiguo 26/05/2012, 21:10
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema recorriendo array en PHP

es que ese es el dilema un objeto no es un array, de todas maneras siempre puedes revisar el manual a ver si entre los iterator que provee php encuentras uno
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 26/05/2012, 21:13
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Cita:
Iniciado por carlos_belisario Ver Mensaje
es que ese es el dilema un objeto no es un array, de todas maneras siempre puedes revisar el manual a ver si entre los [URL="http://www.php.net/manual/es/spl.iterators.php"]iterator[/URL] que provee php encuentras uno
Es que no se por donde empezar con esa informacion que me das, lo que se es que por SESSION le llega un array, lo se en forma de objeto, pero es un array en fin, no comprendo por donde empezar a buscar entonces...
  #8 (permalink)  
Antiguo 26/05/2012, 21:23
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema recorriendo array en PHP

mi primera pregunta es sabes trabajar con objetos?? sino te invito a leer la referencia y a documentarte un poco más sobre programación orientada a objetos, ya que aunque despues que le agarras el tiro no es complicado, tiende a enredarse sino conoces las bases
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 26/05/2012, 21:34
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Cita:
Iniciado por carlos_belisario Ver Mensaje
mi primera pregunta es sabes trabajar con objetos?? sino te invito a leer la [URL="http://www.php.net/manual/es/oop5.intro.php"]referencia[/URL] y a documentarte un poco más sobre programación orientada a objetos, ya que aunque despues que le agarras el tiro no es complicado, tiende a enredarse sino conoces las bases
Si y no, recien estoy empezando, mañana leere la guia ya que aqui es tarde jeje, pero preguntando mal y pronto, existe alguna funcion especial para recorrer objetos?
  #10 (permalink)  
Antiguo 27/05/2012, 14:33
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Lei la documentacion que me dijieron pero no encuentro la solucion, lo unico que podria llegar a funcionar es el __to string pero no se si es la solucion mas correcta.
  #11 (permalink)  
Antiguo 27/05/2012, 19:05
Avatar de Reco-X  
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema recorriendo array en PHP

Encontre la solucion :)

Código PHP:
        if (isset ($_SESSION["itemJuego"])){
            
$items $_SESSION["itemJuego"];
            foreach (
$items as $valor){
                echo 
$valor->getName() 
Como me dijieron en la 2da respuesta hice una funcion para poder llamar al nombre, lo hacia mal al recorrerlo como un array jaja, igual no es muy diferente tampoco!!

Etiquetas: Ninguno
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 01:59.