2009-11-16 7 views
2

J'ai déjà vu des questions similaires mais je n'arrive pas à appliquer les solutions à mon problème. J'ai une variable appelée $ results que j'ai obtenue d'une API. Je vais changer les noms propres afin de protéger mes clients de travail:foreach boucles et objets stdclass

stdClass Object 
(
    [out] => stdClass Object 
     (
      [count] => 2 
      [transactions] => stdClass Object 
       (
        [RealTimeCommissionDataV2] => Array 
         (
          [0] => stdClass Object 
           (
            [adId] => 12345678 
            [advertiserId] => 123456789 
            [advertiserName] => Chuck E. Cheese, inc. 
            [commissionAmount] => 50 
            [country] => US 
            [details] => stdClass Object 
             (
             ) 

            [eventDate] => 2009-11-16T09:44:25-08:00 
            [orderId] => X-XXXXXXXXXX 
            [saleAmount] => 0 
            [sid] => 123456789 
            [websiteId] => 2211944 
           ) 

          [1] => stdClass Object 
           (
            [adId] => 987654321 
            [advertiserId] => 12345 
            [advertiserName] => Chorizon Wireless. 
            [commissionAmount] => 50 
            [country] => US 
            [details] => stdClass Object 
             (
             ) 

            [eventDate] => 2009-11-16T09:58:40-08:00 
            [orderId] => X-CXXXXXX 
            [saleAmount] => 0 
            [sid] => 61-122112 
            [websiteId] => 1111922 
           ) 
         ) 
       ) 
     ) 
) 

J'écourté à deux entrées ici, mais le nombre d'entrées peuvent varier, il est le résultat d'un chèque pour les transactions dans la dernière heure, il peut parfois y en avoir seulement une et parfois même une douzaine.

Je veux assigner ces entrées à des variables comme websiteId1 websiteId2, etc. Je sais que je dois faire une boucle foreach mais je n'arrive pas à le comprendre. Comment puis-je l'écrire pour obtenir les "détails"?

Répondre

3
foreach ($results->out->transactions->RealTimeCommissionDataV2 AS $commissionData) { 
    // you can access the commissionData objects now, i.e.: 
    $commissionData->adId; 
    $commissionData->details; 
} 
+0

grâce à vous aussi! –

3
<? 
    foreach ($result->out->transactions->RealTimeCommissionDataV2 as $item) 
    { 
      // do somthing with each item. 
      print_r($item); 

      // or the details array 
      $num_details = sizeof($item->details) 
    } 
2

Je pense que c'est ce que vous voulez.

EDIT

Mise à jour sur la base des notes dans the documentation. Plus précisément, ces deux

un tableau numérique ne sera pas produire des résultats sauf si vous utilisez EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID.

Les préfixes sont automatiquement séparés de la clé de tableau par un caractère de soulignement .

echo extract($results->out->transactions->RealTimeCommissionDataV2, EXTR_PREFIX_ALL, 'websiteId'); 

// test the extract 
print_r($websiteId_0); 
+0

merci beaucoup! –

+0

Cela n'imprime rien, si je le change en "$ websiteId" il fait écho une valeur correcte mais le problème est qu'il y aura peut-être jusqu'à une douzaine. Je veux avoir $ websiteID1 $ websiteID2 $ websiteID3 etc. –

+0

Ok, j'ai examiné le problème et mis à jour ma réponse. –

Questions connexes