php 如何遍历php中的对象

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8664208/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 05:12:45  来源:igfitidea点击:

How to loop through objects in php

phparraysobjectloopsforeach

提问by mcbeav

I am not too familiar with objects, i usually convert them to arrays using a script, but i thought it was time to man up and learn this, so i am asking how can i loop through an array of objects and pull out the specific information i need, the example of what is being returned is below.

我对对象不太熟悉,我通常使用脚本将它们转换为数组,但我认为是时候开始学习了,所以我问我如何遍历对象数组并提取特定信息我需要,返回内容的示例如下。

[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
        )

回答by DarthVader

you dont need to convert them to anything.

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

foreach loop would work fine with you as follows in generic:

foreach 循环可以正常工作,如下一般:

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

for a inner object this would work:

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

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