2015-01-26 49 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用戶預期:

相關問題