0

I have std object returned via SOAP Client and am trying to read out all the Names / Symbols.

Code I am using is below, but I keep getting invalid argument in foreach on the second foreach statement.

Any ideas?

object(stdClass)#3 (1) {
["ListMoney"]=> object(stdClass)#4 (3)  { 
    ["Outcome"]=> string(7) "Success" 
    ["Exchange"]=> object(stdClass)#5 (1)   { 
        ["Market"]=> string(9) "CHICMERCX" 
    } 
    ["Money"]=> object(stdClass)#6 (1)  { 
        ["Currency"]=> object(stdClass)#7 (2)   { 
            ["Symbol"]=> string(1) "$" 
            ["Name"]=> string(3) "USD"
         } 
         ["Currency"]=> object(stdClass)#7 (2)  { 
            ["Symbol"]=> string(1) "#" 
            ["Name"]=> string(3) "CND"
         }          
    }
 }

Using This Code:

foreach ($result->ListMoney as $ListMoney) { foreach ($ListMoney->Money as $Money) { foreach ($Money->Currency as $Currency) { echo $Currency->Symbol; } } }

0

1 Answer 1

3

You have a few foreach loops too many, $ListMoney->Money for example already gives you the currency:

foreach ($result->ListMoney as $ListMoney)  {
foreach ($ListMoney->Money as $Money)   {
    foreach ($Money->Currency as $Currency) {
        echo $Currency->Symbol;
    }
}
}

Should be something like:

foreach ($result->ListMoney->Money as $Currency) {
    echo $Currency->Symbol;
}

If you use more inner loops, you will run into invalid arguments because for example $result->ListMoney->Outcome->Money does not exist.

Note that by using a syntax like foreach ($result->ListMoney as ... you are skipping a level in your nested object and going straight to the second level. That applies to all your foreach loops.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.