2013-04-29 23 views
9

Ho un oggetto come questo:iterazione attraverso un oggetto stdClass in PHP

stdClass Object 
(
    [_count] => 10 
    [_start] => 0 
    [_total] => 37 
    [values] => Array 
     (
      [0] => stdClass Object 
       (
        [_key] => 50180 
        [group] => stdClass Object 
         (
          [id] => 50180 
          [name] => CriticalChain 
         ) 

       ) 

      [1] => stdClass Object 
       (
        [_key] => 2357895 
        [group] => stdClass Object 
         (
          [id] => 2357895 
          [name] => Data Modeling 
         ) 

       ) 

      [2] => stdClass Object 
       (
        [_key] => 1992105 
        [group] => stdClass Object 
         (
          [id] => 1992105 
          [name] => SQL Server Users in Israel 
         ) 

       ) 

      [3] => stdClass Object 
       (
        [_key] => 37988 
        [group] => stdClass Object 
         (
          [id] => 37988 
          [name] => CDO/CIO/CTO Leadership Council 
         ) 

       ) 

      [4] => stdClass Object 
       (
        [_key] => 4024801 
        [group] => stdClass Object 
         (
          [id] => 4024801 
          [name] => BiT-HR, BI & IT Placement Agency 
         ) 

       ) 

      [5] => stdClass Object 
       (
        [_key] => 37845 
        [group] => stdClass Object 
         (
          [id] => 37845 
          [name] => Israel Technology Group 
         ) 

       ) 

      [6] => stdClass Object 
       (
        [_key] => 51464 
        [group] => stdClass Object 
         (
          [id] => 51464 
          [name] => Israel DBA's 
         ) 

       ) 

      [7] => stdClass Object 
       (
        [_key] => 66097 
        [group] => stdClass Object 
         (
          [id] => 66097 
          [name] => SQLDBA 
         ) 

       ) 

      [8] => stdClass Object 
       (
        [_key] => 4462353 
        [group] => stdClass Object 
         (
          [id] => 4462353 
          [name] => Israel High-Tech Group 
         ) 

       ) 

      [9] => stdClass Object 
       (
        [_key] => 4203807 
        [group] => stdClass Object 
         (
          [id] => 4203807 
          [name] => Microsoft Team Foundation Server 
         ) 

       ) 

     ) 

) 

ho bisogno di ottenere l'id e il nome in una tabella HTML, ma mi sembra di avere un momento difficile scorrendo questo oggetto. TIA. Capisco che ho bisogno di arrivare alla matrice dei valori, e quindi all'oggetto gruppo, ma inciampo sulle transizioni tra l'oggetto e l'array e l'iterazione basata su foreach vs indice.

Per esempio ho provato questo:

foreach ($res as $values) { print "\n"; print_r ($values); } 

Si itera trogolo l'oggetto, ma mi dà anche inutile

10 0 37 
+1

Intende mostrare ciò che si è tentato e spiegare come il vostro tentativo non corrisponde le vostre aspettative? –

+0

sicuro. Ad esempio ho provato questo: foreach ($ res come $ valori) { stampa "\ n"; print_r ($ valori); } itera attraverso l'oggetto, ma mi dà anche inutile 10 0 37 – Mordechai

+3

'foreach ($ oggetto-> valori come $ arr) ....' – adeneo

risposta

16
echo "<table>" 

foreach ($object->values as $arr) { 
    foreach ($arr as $obj) { 
     $id = $obj->group->id; 
     $name = $obj->group->name; 

     $html = "<tr>"; 
     $html .= "<td>Name : $name</td>"; 
     $html .= "<td>Id : $id</td>"; 
     $html .= "</tr>"; 
    } 
} 

echo "</table>"; 
+0

quasi. ecco cosa ha funzionato: echo "
Gruppi disponibili

"; foreach ($ res-> valori come $ arr) { $ id = $ arr-> group-> id; $ nome = $ arr-> gruppo-> nome; $ html = ""; $ html = ""...; $ html = ""...; $ html. = ""; \t \t echo $ html; } echo "
Gruppo Nome ID gruppo
" $ name "" $ id "
"; – Mordechai

+1

Ecco, stavo solo indovinando la struttura di un tavolo lì, ma se hai funzionato, questa è la parte importante. – adeneo

1
foreach($res->values as $value) { 
    print_r($value); 
} 
2
function objectToArray($data) 
{ 
    if (is_object($data)) 
     $d = get_object_vars($data); 
} 

convertire l'oggetto ad un array per prima cosa:

$results = objectToArray($results); 

e utilizzare

foreach($results as result){... ...} 
Problemi correlati