Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在foreach循环中合并对象_Php - Fatal编程技术网

Php 在foreach循环中合并对象

Php 在foreach循环中合并对象,php,Php,我需要合并从foreach循环返回的对象。下面是返回对象的示例。我到处找,找不到这个问题的任何具体答案 这是我的foreach循环 foreach ( $instagram_basic->data as $media ) { $media_id = $media->id; $instagram_basic_data_array['data'] = 'https://graph.instagram.com/$media_id ...; $

我需要合并从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
                    )
        )
)

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

如果您在循环之前创建了数据的基础,然后在进行过程中添加每个项目,这将为您提供所需的输出

$output = (object)['data' => []];
foreach ( $instagram_basic->data as $media ) {

// Other code here


        $output->data[] = $instagram_basic_media ;
}   

如果您通过传递第二个参数TRUE进行json_解码,对象将转换为数组,您可以使用数组合并函数来合并这些数组。非常感谢!如何保留stdClass对象([data]=>Array(…返回开始时的部分)?不确定您的意思,
print\r($output);
应该显示所有结构。是的,只需删除我的print\r上的->data部分。再次感谢您!