使用数组动态生成switch语句的大小写

4 php mysql rss foreach switch-statement

我正在创建一个脚本来为我网站的各个部分自动生成RSS源.我已经被数据库查询并且有一个数据数组,代表每个被调用的部分$showData.我正在使用switch语句来设置各种变量,具体取决于站点的部分.我不是每次添加一个节目都要改变这个剧本,我希望case在我的switch声明中是动态的.

<?php
switch($section){
    case 'show1':
        $title = $showData['show1'] . ' Title';
        $description = $showData['show1'] . ' Description';
        break;
    case 'show2':
        $title = $showData['show2'] . ' Title';
        $description = $showData['show2'] . ' Description';
        break;
}
?>
Run Code Online (Sandbox Code Playgroud)

我试图使用foreach循环来创建每个案例,但你不能把它放在一个switch语句中.我读过的其他帖子中的其他人建议使用eval().

这是我尝试过的代码,但是没有用.

<?php
switch($showFilter)}
    foreach($showFilters as $key => $value){
        case $key:
        $title = $value;
        $description = $value;
        break;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

这是一个print_r数组

Array
(
    [show1] => The Name of Show One
    [show2] => The Name of Show Two
)
Run Code Online (Sandbox Code Playgroud)

Gar*_*ers 8

switch你可以不尝试使用块,而不是使用块:

$title = $showData[$section] . ' Title';
$description = $showData[$section] . ' Description';
Run Code Online (Sandbox Code Playgroud)