2011-05-10 86 views
0

对于我的生活,我无法弄清楚如何访问这个数组的值。每个示例stdClass对象都具有某种类型的值。如果我尝试例如$obj->0->0->city;,则出现错误。访问API的数组元素

有人可以告诉我一个例子如何访问[city] => toronto甚至[date_created] => 2011-05-03 14:33:58

我也试过这个没有运气。

$object = $buy[1]; 
$title = $object->title[0]; 
echo "$title"; 

感谢

这就是API给我。

stdClass Object 
(
    [id] => 1 
    [name] => toronto 
    [date_modified] => 2011-03-08 13:07:10 
    [tax_rate_provincial] => 
) 
<br/> 
Array 
(
    [0] => stdClass Object 
     (
      [0] => stdClass Object 
       (
        [id] => 28131844 
        [full_date] => 20110506 
        [end_date] => 20110511 
        [city] => toronto 
        [saved] => 1651 
        [discount_percentage] => 52 
        [deal_option] => Array 
         (
          [0] => stdClass Object 
           (
            [id] => 2600 
            [title] => 
            [date_modified] => 0000-00-00 00:00:00 
            [date_created] => 2011-05-03 14:33:58 
            [value] => 3150 
            [price] => 1499 
            [deal_id] => 28131844 
            [is_default] => 0 
           ) 

         ) 

        [options] => 
        [option_quantity] => 
        [option_remaining] => 
        [purchase_limit] => 1 
        [gift_limit] => 0 

回答

2

有一个特别邪恶的语法来绕过数字对象的属性:

print $obj->{'0'}->{'0'}->city; 

是正确的语法,以及相当于你已经确定的路径。

你的第二个例子是一个数组然而,因此它可能是:

print $array[0]->{'0'}->city; 

另一种方法是始终只是foreach在一个特定的水平 - 即对对象和数组同样适用。