在 foreach 循环中合并对象

我需要合并从 foreach 循环返回的对象。以下是返回对象的示例。我搜索了高低,在任何地方都找不到这个特定问题的任何具体答案。


这是我的 foreach 循环


foreach ( $instagram_basic->data as $media ) {

        $media_id = $media->id;

        $instagram_basic_data_array['data'] = 'https://graph.instagram.com/$media_id ...;

        $instagram_basic_media_response = $this->fts_get_feed_json( $instagram_basic_data_array );

        $instagram_basic_media = json_decode( $instagram_basic_media_response['data'] );

        print_r( $instagram_basic_media );

}    

这是使用 print_r 时的结果。注意:返回的对象总是多于 2 个,我只在下面添加了 2 个作为示例。


stdClass Object

(

    [caption] => Arcade1Up Plexiglass cover installed!

    [id] => 17914463977383922

)


stdClass Object

(

    [caption] => #ninamilesmacey

    [id] => 17907886372351359

)

我希望最终结果看起来像这样。


stdClass Object

(

    [data] => Array

            (

                [0] => stdClass Object

                    (

                        [caption] => Arcade1Up Plexiglass cover installed!

                        [id] => 17914463977383922

                    )


                [1] => stdClass Object

                    (

                        [caption] => #ninamilesmacey

                        [id] => 17907886372351359

                    )

        )

)

也许有一种更有效的方法可以让我在 jason 解码之前合并数组?谢谢您的帮助。


幕布斯6054654
浏览 210回答 1
1回答

慕田峪4524236

如果您在循环之前创建数据的基础,然后在执行过程中添加每个项目,这应该会为您提供您所追求的输出......$output = (object)['data' => []];foreach ( $instagram_basic->data as $media ) {// Other code here        $output->data[] = $instagram_basic_media ;}   
打开App,查看更多内容
随时随地看视频慕课网APP