【问题标题】:How to loop through objects in php如何在php中遍历对象
【发布时间】:2012-01-29 15:44:29
【问题描述】:

我对对象不太熟悉,我通常使用脚本将它们转换为数组,但我认为是时候学会这一点了,所以我想问如何循环遍历对象数组并取出我需要的具体信息,返回的示例如下。

[2] => stdClass Object
        (
            [id_str] => 152240682071900161
            [in_reply_to_status_id] => 
            [contributors] => 
            [place] => 
            [truncated] => 
            [geo] => 
            [favorited] => 
            [created_at] => Thu Dec 29 04:13:01 +0000 2011
            [user] => stdClass Object
                (
                    [id_str] => 71876190
                    [contributors_enabled] => 
                    [lang] => en
                    [protected] => 
                    [url] => http://www.imdb.com/name/nm0000362/
                    [default_profile] => 1
                    [profile_use_background_image] => 1
                    [name] => Danny DeVito
                    [default_profile_image] => 
                    [friends_count] => 14
                    [profile_text_color] => 333333
                    [statuses_count] => 5361
                    [profile_background_image_url] => http://a0.twimg.com/images/themes/theme1/bg.png
                    [utc_offset] => -28800
                    [description] => I'm an actor, director and producer. 
                    [is_translator] => 
                    [created_at] => Sat Sep 05 19:44:48 +0000 2009
                    [profile_link_color] => 0084B4
                    [following] => 1
                    [profile_background_image_url_https] => https://si0.twimg.com/images/themes/theme1/bg.png
                    [favourites_count] => 8
                    [follow_request_sent] => 
                    [geo_enabled] => 1
                    [profile_background_color] => C0DEED
                    [profile_background_tile] => 
                    [followers_count] => 1784732
                    [profile_image_url] => http://a2.twimg.com/profile_images/400232403/Photo_6_normal.jpg
                    [screen_name] => DannyDeVito
                    [show_all_inline_media] => 
                    [profile_sidebar_fill_color] => DDEEF6
                    [profile_image_url_https] => https://si0.twimg.com/profile_images/400232403/Photo_6_normal.jpg
                    [listed_count] => 20918
                    [notifications] => 
                    [location] => Los Angeles
                    [id] => 71876190
                    [verified] => 1
                    [time_zone] => Pacific Time (US & Canada)
                    [profile_sidebar_border_color] => C0DEED
                )

            [in_reply_to_user_id] => 
            [retweet_count] => 10
            [in_reply_to_screen_name] => 
            [in_reply_to_status_id_str] => 
            [possibly_sensitive] => 
            [retweeted] => 
            [source] => WhoSay
            [in_reply_to_user_id_str] => 
            [coordinates] => 
            [id] => 1.52240682072E+17
            [text] => #Trollfoot Maroma http://t.co/4MvCYIFe
        )

    [3] => stdClass Object
        (
            [id_str] => 152240419344879616
            [in_reply_to_status_id] => 
            [contributors] => 
            [place] => 
            [truncated] => 
            [geo] => 
            [favorited] => 
            [created_at] => Thu Dec 29 04:11:59 +0000 2011
            [user] => stdClass Object
                (
                    [id_str] => 71876190
                    [default_profile] => 1
                    [contributors_enabled] => 
                    [lang] => en
                    [protected] => 
                    [url] => http://www.imdb.com/name/nm0000362/
                    [profile_use_background_image] => 1
                    [name] => Danny DeVito
                    [default_profile_image] => 
                    [friends_count] => 14
                    [profile_text_color] => 333333
                    [statuses_count] => 5361
                    [profile_background_image_url] => http://a0.twimg.com/images/themes/theme1/bg.png
                    [utc_offset] => -28800
                    [description] => I'm an actor, director and producer. 
                    [is_translator] => 
                    [created_at] => Sat Sep 05 19:44:48 +0000 2009
                    [profile_link_color] => 0084B4
                    [following] => 1
                    [profile_background_image_url_https] => https://si0.twimg.com/images/themes/theme1/bg.png
                    [favourites_count] => 8
                    [follow_request_sent] => 
                    [geo_enabled] => 1
                    [profile_background_color] => C0DEED
                    [profile_background_tile] => 
                    [followers_count] => 1784725
                    [profile_image_url] => http://a2.twimg.com/profile_images/400232403/Photo_6_normal.jpg
                    [screen_name] => DannyDeVito
                    [show_all_inline_media] => 
                    [profile_sidebar_fill_color] => DDEEF6
                    [profile_image_url_https] => https://si0.twimg.com/profile_images/400232403/Photo_6_normal.jpg
                    [listed_count] => 20918
                    [notifications] => 
                    [location] => Los Angeles
                    [id] => 71876190
                    [verified] => 1
                    [time_zone] => Pacific Time (US & Canada)
                    [profile_sidebar_border_color] => C0DEED
                )

            [in_reply_to_user_id] => 
            [retweet_count] => 15
            [in_reply_to_screen_name] => 
            [in_reply_to_status_id_str] => 
            [possibly_sensitive] => 
            [retweeted] => 
            [source] => WhoSay
            [in_reply_to_user_id_str] => 
            [coordinates] => 
            [id] => 1.52240419345E+17
            [text] => #Trolltoll Maroma http://t.co/Egv9syon
        )

【问题讨论】:

  • 向我们展示您尝试过的代码如何?究竟“[您]需要的具体信息是什么?”
  • 比如说我只是想获取每个对象的 id_str。

标签: php arrays object loops foreach


【解决方案1】:

你不需要将它们转换成任何东西。

foreach 循环在一般情况下可以正常工作,如下所示:

foreach ($objects as $obj) {
   echo $obj->property;
}

对于内部对象,这将起作用:

foreach ($objects as $obj){
      echo $obj->user->description;
}

【讨论】:

  • 谢谢,我试试这个,我只是从未尝试过,并认为对象的工作方式与数组不同。
  • 其实是相反的:foreach ($objects as $obj)
猜你喜欢
  • 2017-02-03
  • 2015-10-23
  • 2016-09-16
  • 2013-04-23
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 2015-02-27
相关资源
最近更新 更多