首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中合并两个数组的替代方法

问在PHP中合并两个数组的替代方法
EN

Stack Overflow用户
提问于 2016-02-12 23:36:54
回答 1查看 203关注 0票数 0

我在PHP中合并了几个这样的数组

代码语言:javascript
复制
//all the other stuff
$sxml = simplexml_load_file($url);
$json = json_encode($sxml);
$jObj = json_decode($json);

$new = new stdClass(); 
foreach ($jObj->entry as $entry) {
    $s = new stdClass();
    $s->title = $entry->title;
    $s->id = $entry->summary; 

$new->entries[] = $s; 
}
$array1 =  (array) $new;

foreach ($jObj->entry as $entry) {
      $urls[] = $entry->id;
    }

//$podcast_ids = [];
//$info = [];
foreach ($urls as $string) {
    if (preg_match('/id(\d+)/', $string, $match)) {
        $podcast_ids[] = $match[1];
    }
}
$json_array = json_decode(file_get_contents('https://itunes.apple.com/lookup?' . http_build_query(['id' => implode(',', $podcast_ids)])));

$info = new stdClass();
foreach ($json_array->results as $item) {
    $t = new stdClass();
    $t->artistName = $item->artistName;
    $t->feedUrl = $item->feedUrl;
    $t->primaryGenreName = $item->primaryGenreName;
    $t->artworkUrl60 = $item->artworkUrl60;

    $info->entries[] = $t;
}
$array2 =  (array) $info;
$ab = array('a' => $array1, 'b' => $array2);
print_r($ab);

print_r($ab)给了我类似这样的东西:

代码语言:javascript
复制
Array
(
    [a] => Array
        (
            [entries] => Array
                (
                    [0] => stdClass Object
                        (
                            [title] => Serial - This American Life
                            [id] => Serial is a podcast from the creators of This American Life, hosted by Sarah Koenig. Serial unfolds one story - a true story - over the course of a whole season. The show follows the plot and characters wherever they lead, through many surprising twists and turns. Sarah won't know what happens at the end of the story until she gets there, not long before you get there with her. Each week she'll bring you the latest chapter, so it's important to listen in, starting with Episode 1. New episodes are released on Thursday mornings.
                        )

                    [1] => stdClass Object
                        (
                            [title] => This American Life - This American Life
                            [id] => This American Life is a weekly public radio show, heard by 2.2 million people on more than 500 stations. Another 1.5 million people download the weekly podcast. It is hosted by Ira Glass, produced in collaboration with Chicago Public Media, delivered to stations by PRX The Public Radio Exchange, and has won all of the major broadcasting awards.
                        )

                    [2] => stdClass Object
                        (
                            [title] => Real Crime Profile - Real Crime Profile
                            [id] => Podcast talking about criminal cases and personality profiling.
                        )

                )

        )

    [b] => Array
        (
            [entries] => Array
                (
                    [0] => stdClass Object
                        (
                            [artistName] => This American Life
                            [feedUrl] => http://feeds.serialpodcast.org/serialpodcast
                            [primaryGenreName] => News & Politics
                            [artworkUrl60] => http://is2.mzstatic.com/image/thumb/Music69/v4/70/c9/71/70c97133-f3a8-738e-ea2c-27a6dc7d9731/source/60x60bb.jpg
                        )

                    [1] => stdClass Object
                        (
                            [artistName] => This American Life
                            [feedUrl] => http://feed.thisamericanlife.org/talpodcast
                            [primaryGenreName] => Personal Journals
                            [artworkUrl60] => http://is5.mzstatic.com/image/thumb/Music4/v4/1f/b8/0f/1fb80f69-bd94-8cad-0a2f-b082541d5f64/source/60x60bb.jpg
                        )

                    [2] => stdClass Object
                        (
                            [artistName] => Real Crime Profile
                            [feedUrl] => http://feeds.soundcloud.com/users/soundcloud:users:202076064/sounds.rss
                            [primaryGenreName] => History
                            [artworkUrl60] => http://is5.mzstatic.com/image/thumb/Music69/v4/e4/0d/1e/e40d1efe-f625-8d15-4e2e-706fecead1e8/source/60x60bb.jpg
                        )

                )

        )

)

这与我想要的很接近,但理想情况下,我希望进一步简化它,这样就不会在这个数组中有一个a和b“树”。有没有一种方法可以把它们组合成一个数组,而不是一个大数组中的两个数组?

编辑

这就是我想要的结果:

代码语言:javascript
复制
Array
(
    [a] => Array
        (
            [entries] => Array
                (
                    [0] => stdClass Object
                        (
                            [title] => Serial - This American Life
                            [id] => Serial is a podcast from the creators of This American Life, hosted by Sarah Koenig. Serial unfolds one story - a true story - over the course of a whole season. The show follows the plot and characters wherever they lead, through many surprising twists and turns. Sarah won't know what happens at the end of the story until she gets there, not long before you get there with her. Each week she'll bring you the latest chapter, so it's important to listen in, starting with Episode 1. New episodes are released on Thursday mornings.
                            [artistName] => This American Life
                            [feedUrl] => http://feeds.serialpodcast.org/serialpodcast
                            [primaryGenreName] => News & Politics
                            [artworkUrl60] => http://is2.mzstatic.com/image/thumb/Music69/v4/70/c9/71/70c97133-f3a8-738e-ea2c-27a6dc7d9731/source/60x60bb.jpg
                        )

                    [1] => stdClass Object
                        (
                            [title] => This American Life - This American Life
                            [id] => This American Life is a weekly public radio show, heard by 2.2 million people on more than 500 stations. Another 1.5 million people download the weekly podcast. It is hosted by Ira Glass, produced in collaboration with Chicago Public Media, delivered to stations by PRX The Public Radio Exchange, and has won all of the major broadcasting awards.
                            [artistName] => This American Life
                            [feedUrl] => http://feed.thisamericanlife.org/talpodcast
                            [primaryGenreName] => Personal Journals
                            [artworkUrl60] => http://is5.mzstatic.com/image/thumb/Music4/v4/1f/b8/0f/1fb80f69-bd94-8cad-0a2f-b082541d5f64/source/60x60bb.jpg
                        )

                    [2] => stdClass Object
                        (
                            [title] => Real Crime Profile - Real Crime Profile
                            [id] => Podcast talking about criminal cases and personality profiling.
                            [artistName] => Real Crime Profile
                            [feedUrl] => http://feeds.soundcloud.com/users/soundcloud:users:202076064/sounds.rss
                            [primaryGenreName] => History
                            [artworkUrl60] => http://is5.mzstatic.com/image/thumb/Music69/v4/e4/0d/1e/e40d1efe-f625-8d15-4e2e-706fecead1e8/source/60x60bb.jpg
                        )

                )

        )

)
EN

回答 1

Stack Overflow用户

发布于 2016-02-12 23:39:30

你有没有试过PHPs array_merge

$ab = array_merge($array1, $array2);

您可能还在寻找类似以下内容的输出:

$ab['entries'] = array_merge($array1['entries'], $array2['entries']);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35366473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档