Foros del Web » Programando para Internet » PHP »

PHP OO Problemas con array ayuda por favor?

Estas en el tema de Problemas con array ayuda por favor? en el foro de PHP en Foros del Web. Tengo problemas para sacar las claves de este este array devuelto de un web service: El array inicial es: Código PHP: stdClass Object  ( [return] => Array ( [ 0 ] =>  ...
  #1 (permalink)  
Antiguo 09/11/2010, 14:59
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Problemas con array ayuda por favor?

Tengo problemas para sacar las claves de este este array devuelto de un web service:

El array inicial es:
Código PHP:
stdClass Object ( [return] => Array ( [0] => stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno ) [1] => stdClass Object ( [description] => [id] => 544 [name] => Media Pensión ) [2] => stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa ) [3] => stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento ) [4] => stdClass Object ( [description] => [id] => 61 [name] => Todo incluido ) ) ) 
Bien esto lo transformo en esto:

Código PHP:
Array ( [0] => stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno ) [1] => stdClass Object ( [description] => [id] => 544 [name] => Media Pensión ) [2] => stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa ) [3] => stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento ) [4] => stdClass Object ( [description] => [id] => 61 [name] => Todo incluido ) ) 
Mediante este codigo
$countries es la variable que devuelve el webservice
Código PHP:
$a$countries->return;
print_r ($a);echo "<br>"
Despues si recorro a como array saco esto otro con un for etc etc.

stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno )

stdClass Object ( [description] => [id] => 544 [name] => Media Pensión )

stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa )

stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento )

stdClass Object ( [description] => [id] => 61 [name] => Todo incluido )

Hasta aqui todo bien.

Mi problema es que quiero poner en variables (vamos que no sé desgolsar ese objeto);

Código PHP:
$b=a[$i]->description->id
Así no me funciona

Un alma caritativa, por favor
  #2 (permalink)  
Antiguo 09/11/2010, 16:51
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 7 meses
Puntos: 6
Respuesta: Problemas con array ayuda por favor?

Emplea un foreach
Código PHP:
foreach($a as $aa){
    
$b $aa->description->id;

__________________
No todo lo que se hace en segundo plano es AJAX
  #3 (permalink)  
Antiguo 09/11/2010, 17:11
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con array ayuda por favor?

Cita:
Iniciado por iandrade Ver Mensaje
Emplea un foreach
Código PHP:
foreach($a as $aa){
    
$b $aa->description->id;

No me funciona, no me sale al hacer un echo de $b;

no se si se puede hacer lo que escribi arriba, nunca he empleado el tema de los web services y estoy teniendo muchas dificultades.

¿Quieres que te ponga el codigo completo?
  #4 (permalink)  
Antiguo 09/11/2010, 17:20
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con array ayuda por favor?

Voy a poner todo mi código:

Código PHP:
$client = new SoapClient("http://www.valadis.net/demo/soa/services/InformationEngine?wsdl");
//$client = new SoapClient("http://www.entrayviaja.com/ficheros/wsdl.txt");
//Parametros de conxion
$params = array('login'=>array('lang' => "es" ,'password' => "monzon.xml"'user' => "monzon.xml"));
// Funcion que nos devuelven los tipos de regimen
//$countries =$client->__soapCall("getBoardTypes",$params);
//array de objetos
$countries $client->getBoardTypes($params);

if (isset(
$fault)) {
       
// print "Error: ". $fault;
}
else{
        
print_r($countries); //Imprimos por pantalla el array
}
echo 
"<br>";
/* $countries Devuelve esto:
stdClass Object ( [return] => Array ( [0] => stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno ) [1] => stdClass Object ( [description] => [id] => 544 [name] => Media Pensión ) [2] => stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa ) [3] => stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento ) [4] => stdClass Object ( [description] => [id] => 61 [name] => Todo incluido ) ) );
*/
//Yo quiero sacar los valores en variables

//a es un array de objetos
$a$countries->return;
echo 
"<br>";
print_r ($a);echo "<br>";
/*Devuelve esto:
Array ( [0] => stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno ) [1] => stdClass Object ( [description] => [id] => 544 [name] => Media Pensión ) [2] => stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa ) [3] => stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento ) [4] => stdClass Object ( [description] => [id] => 61 [name] => Todo incluido ) )*/


$b=count($a);
echo 
"<br>";
echo 
$b//Devuelve 5 . Hasta aqui todo correcto
echo "<br>";


for(
$i=0$i<$b$i++)
{
    
//$cadena=$a[$i]->description->id;
    
print_r($a[$i]);
    
$y=$a[$i];
    
//print_r($y);
    
print_r ($cadena);
    echo 
"<br>";
    
    

    
    }
/* Los valores son :
stdClass Object ( [description] => [id] => 543 [name] => Alojamiento y Desayuno )
stdClass Object ( [description] => [id] => 544 [name] => Media Pensión )
stdClass Object ( [description] => [id] => 541 [name] => Pensión Completa )
stdClass Object ( [description] => [id] => 542 [name] => Sólo Alojamiento )
stdClass Object ( [description] => [id] => 61 [name] => Todo incluido ) */ 
Quiero sacar los valores en variables para poder insertar a la bd en mysql

Aparentemente puedo abordar el array en 3 sitios, pero no sé como hacerlo, por favor si ven que estoy equipocado, corrijanme.

Muchas gracias por su amabilidad.

Última edición por agareta; 10/11/2010 a las 14:55 Razón: Ayuda por favor
  #5 (permalink)  
Antiguo 10/11/2010, 14:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con array ayuda por favor?

Código PHP:
echo $y->name
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 11/11/2010, 12:08
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problemas con array ayuda por favor?

Cita:
Iniciado por pateketrueke Ver Mensaje
Código PHP:
echo $y->name
Eso no me funciono, pero dejo una funcion para ver si alguien le sirve de ayuda

Código PHP:
 function obj2array($obj) {
 
        
$out = array();
 
        foreach (
$obj as $key => $val) {
  
          switch(
true) {

              case 
is_object($val):
 
               
$out[$key] = obj2array($val);

               break;
  
            case 
is_array($val):

               
$out[$key] = obj2array($val);
  
               break;
 
            default:
  
              
$out[$key] = $val;
 
          }

        }

        return 
$out;
 
      } 

Etiquetas: clases, gracias, objetos, php5, soap
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 03:21.