3

I need help trying to get values inside array and stdClass Object.

FYI: I'm using foursquare API...

I have something like this:

`$fsq_groups = $venues->response->groups;`

    echo "<pre>";
    print_r($fsq_groups);
    echo "</pre>";

From print_r($fsq_groups);

Array
(
    [0] => stdClass Object
        (
            [type] => Recommended Places
            [name] => recommended
            [items] => Array
                (
                    [0] => stdClass Object
                        (
                            [reasons] => stdClass Object
                                (
                                    [count] => 2
                                    [items] => Array
                                        (
                                            [0] => stdClass Object
                                                (
                                                    [type] => general
                                                    [message] => Lots of people have mentioned "burgers" here
                                                )

                                            [1] => stdClass Object
                                                (
                                                    [type] => general
                                                    [message] => This spot is popular on Foursquare
                                                )

                                        )

                                )

                            [venue] => stdClass Object
                                (
                                    [id] => 4afe5a4bf964a520372f22e3
                                    [name] => Stout Burgers & Beer
                                    [contact] => stdClass Object
...

How do I get to the name under venue

I tried something like this but didn't work:

foreach($fsq_groups as $groups)
{
    foreach($groups->items->venue as $venue)
    {

            echo $venue->name;
                echo "<pre>";
                print_r($venue);
                echo "</pre>";
    }
}
hellomello
  • 8,219
  • 39
  • 151
  • 297
  • you can convert your object to a array like this: http://www.if-not-true-then-false.com/2009/php-tip-convert-stdclass-object-to-multidimensional-array-and-convert-multidimensional-array-to-stdclass-object/ – silly Nov 14 '12 at 09:00
  • Possible duplicate of [Invalid argument supplied for foreach()](http://stackoverflow.com/questions/2630013/invalid-argument-supplied-for-foreach) – Cullub Feb 08 '16 at 21:38

3 Answers3

5
$fsq_groups = $venues->response->groups;
if(isset($fsq_groups[0])){
    $groups = $fsq_groups[0];
    foreach($groups->items as $key => $place){
        $venue = $place->venue;
        echo $venue->name;
    }
}
martin-lundberg
  • 470
  • 2
  • 8
2
foreach($fsq_groups as $groups)
{
    foreach($groups->items as $item)
    {

            echo $item->venue->name;
                echo "<pre>";
                print_r($item);
                echo "</pre>";
    }
}

Try that.. Items is array so you cant go to venue using "items->venue"

Svetoslav
  • 4,686
  • 2
  • 28
  • 43
1

Please try this,

foreach($fsq_groups as $key=>$groups)
{
    foreach($key->$groups as $venue)
    {

            echo $venue->name;
                echo "<pre>";
                print_r($venue);
                echo "</pre>";
    }
}
Elby
  • 1,624
  • 3
  • 23
  • 42