2015-01-26 58 views
0

如果某个属性值(id)是由我给出的,我如何循环进入下面的php对象并拉动propery值(名称,姓氏,城市,国家)。如何循环到一个php对象并提取属性数据

$users = (object) array(
    'id' => '753', 
    'firstname' => 'trevor', 
    'lastname' => 'bean', 
    'address' => array(
     (object) array(
      'country' => 'Romania' 
      'city' => 'Iasi' 
     ) 
    ) 
) 
     (object) array(
    'id' => '754', 
    'firstname' => 'ben', 
    'lastname' => 'stone', 
    'address' => array(
     (object) array(
      'country' => 'Hungary' 
      'city' => 'Budapest' 
     ) 
    ) 
); 

我已经测试:

foreach ($users as $user1) { 
     if ($user1->id=== '754') { 
      echo $user1->firstname 
      break; 
     } 
    } 

,并返回trevor - 的id 753而不是名字的请求id 754

+1

你的$用户变量甚至不会编译,首先,你在哪里得到你的对象?一些JSON结果还是什么? ***也许如果您向我们提供更多关于您的数据来自何处以及如何发布的信息,我们可能会为您提供更简单的解决方案...... *** – Prix 2015-01-26 20:59:47

回答

1

您发布的代码无效,无法编译。 我让自己作出一些假设如何纠正它:

$users = array((object)array(
    'id' => '753', 
    'firstname' => 'trevor', 
    'lastname' => 'bean', 
    'address' => array(
     (object)array(
      'country' => 'Romania', 
      'city' => 'Iasi' 
      ) 
     ) 
    ), 
    (object)array(
     'id' => '754', 
     'firstname' => 'ben', 
     'lastname' => 'stone', 
     'address' => array(
      (object)array(
       'country' => 'Hungary', 
       'city' => 'Budapest' 
      ) 
     ) 
    ) 
); 

foreach ($users as $user1) { 
    if ($user1->id=== '754') { 
     echo $user1->firstname; 
     break; 
    } 
} 

现在它可以作为您的要求。

请注意,我用数组包裹了你的对象。

0

我想你想PHP的get_object_vars()benfirstname。它会在一个关联数组返回对象的访问的(public,在这种情况下),非静态的属性:

foreach (get_object_vars($users) as $user1) { 
    if ($user1->id=== '754') { 
     echo $user1->firstname; 
     break; 
    } 
} 

您还需要修复,你已经失踪, S和; S中的多个地方。

0

你的PHP有一些明显的语法错误(缺少;,),我想你想要$users变量是一个用户对象的数组,而不是一个对象。您的代码可能应该是这个样子:

$users = array(
    (object) array(
     'id' => '753', 
     'firstname' => 'trevor', 
     'lastname' => 'bean', 
     'address' => array(
      (object) array(
       'country' => 'Romania', 
       'city' => 'Iasi' 
      ) 
     ) 
    ), 
    (object) array(
     'id' => '754', 
     'firstname' => 'ben', 
     'lastname' => 'stone', 
     'address' => array(
      (object) array(
       'country' => 'Hungary', 
       'city' => 'Budapest' 
      ) 
     ) 
    ) 
); 

foreach ($users as $user1) { 
    if ($user1->id=== '754') { 
     echo $user1->firstname; 
     break; 
    } 
} 

它retuns的ben用户预期: