将 url 前缀添加到数组的值 - 为什么要添加两次?

问题描述

我目前遇到一个问题,目前无法解释。在我的示例中,我有一系列练习。每个练习都包含一系列级别,其中至少有一个级别(最多为任何级别)。

示例:

{
    "id": 5,"code": "AEE87","title": "Title No One","description": "Description of No One","titleimage": "https://my.host.com/img/exercises/5/AEE87.jpg","levels": [
        {
            "id": 7,"e_id": 5,"lvl": 1,"repeats": 1,"video": "movie_7.mp4"
        },{
            "id": 8,"level": 2,"video": "movie_8.mp4"
        },{
            "id": 10,"level": 3,"video": "movie_10.mp4"
        },{
            "id": 12,"level": 1,"repeats": 2,"video": "movie_12.mp4"
        },{
            "id": 13,"video": "movie_13.mp4"
        },{
            "id": 14,"video": "movie_14.mp4"
        },{
            "id": 15,"repeats": 3,"video": "movie_15.mp4"
        },{
            "id": 16,"video": "movie_16.mp4"
        },{
            "id": 17,"video": "movie_17.mp4"
        }
    ]
},{
    "id": 10,"code": "BC376","title": "Title No Two","description": "Description for No Two","titleimage": "https://my.host.com/img/exercises/10/BC376.jpg","levels": [
        {
            "id": 20,"e_id": 10,"level": 0,"repeats": 0,"video": "movie_20.mp4"
        }
    ]
},

现在我想给每个级别['video']添加一个URL前缀所以我想了

foreach($program->exercises as $exercise) {
    foreach($exercise->levels as $level) {
        $level->video = 'https://my.host.com/videos/'.$level->video;
    }
}

如果练习只有一个级别,这很有效。如果有多个,则url前缀添加两次:

{
            "id": 7,"video": "https://my.host.com/videos/https://my.host.com/videos/movie_7.mp4"
        },"video": "https://my.host.com/videos/https://my.host.com/videos/movie_8.mp4"
        },

我的思维错误在哪里?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)