2013-04-29 20 views
9

Ich habe ein Objekt wie folgt:Iterieren durch ein stdClass Objekt 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 
         ) 

       ) 

     ) 

) 

Ich brauche die ID und den Namen in einer HTML-Tabelle zu bekommen, aber ich glaube, eine harte Zeit durch dieses Objekt läuft haben. TIA. Ich verstehe, dass ich zum Werte-Array und dann zum Gruppenobjekt gelangen muss, aber ich stolpere über die Übergänge zwischen Objekt und Array und foreach vs indexbasierte Iteration.

Zum Beispiel habe ich versucht, dies:

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

Es iteriert das Objekt Trog, aber es gibt mir auch nutzlos

10 0 37 
+1

zeigen Ihnen, was Sie versucht haben, und zu erklären, wie Ihr Versuch nicht Ihren Erwartungen? –

+0

sicher. Zum Beispiel habe ich Folgendes versucht: foreach ($ res als $ -Werte) { print "\ n"; print_r ($ Werte); } iteriert durch das Objekt, aber es gibt mir auch nutzlos 10 0 37 – Mordechai

+3

'foreach ($ object-> Werte als $ arr) ....' – adeneo

Antwort

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

fast. hier ist, was funktioniert hat: echo "
Verfügbare Gruppen

"; foreach ($ res-> Werte als $ arr) { $ id = $ arr-> group-> id; $ name = $ arr-> gruppe-> name; $ html = ""; $ html. = ""; $ html. = ""; $ html. = ""; \t \t echo $ html; } Echo "
Gruppenname Gruppen-ID
". $ Name. "". $ Id. "
"; – Mordechai

+1

Da ging es, ich habe nur die Struktur eines Tisches erraten, aber wenn Sie es funktioniert haben, ist das der wichtige Teil. – adeneo

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

umrechnen Object Array zuerst wie:

$results = objectToArray($results); 

und verwenden

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