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

时间:2012-02-02 19:12:02

标签: 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;
}
?>

我尝试使用foreach循环来创建每个案例,但是你不能把它放在switch语句中。我读过的另一篇文章中的其他人建议使用eval()

这是我尝试的代码,但不起作用。

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

这是数组的print_r

Array
(
    [show1] => The Name of Show One
    [show2] => The Name of Show Two
)

1 个答案:

答案 0 :(得分:8)

不是使用switch阻止,您可以尝试:

$title = $showData[$section] . ' Title';
$description = $showData[$section] . ' Description';