如何使用逗号分隔字符串与switch语句

时间:2015-08-06 05:17:48

标签: php arrays switch-statement explode

我有一个字符串$str="1,2,4";

我还有一个开关声明

                    switch ($str_value) {
                        case '0':
                            $finalday='Sunday';
                            break;
                        case '1':
                            $finalday='Monday';
                            break;
                        case '2':
                            $finalday='Tuesday';
                            break;
                        case '3':
                            $finalday='Wednesday';
                            break;
                        case '4':
                            $finalday='Thursday';
                            break;
                        case '5':
                            $finalday='Friday';
                            break;
                        case '6':
                            $finalday='Saturday';
                            break;
                        default: $finalday='';
                    }

使用来自给定字符串的此语句我想显示结果

Day is : Monday,Tuesday,Thursday

我该怎么做?

5 个答案:

答案 0 :(得分:4)

而不是switch案例制作一组天数

$days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Saturday'];
$str="1,2,4";
$val = [];
foreach(explode(',',$str) as $value){
    $val[] = $days[$value];
}
echo implode(',',$val);//Monday,Tuesday,Thursday

答案 1 :(得分:0)

不要使用switch语句。使用preg_replace:

$final_day = $str_value;
$final_day = preg_replace('/0/', 'Sunday', $final_day);
// ...
$final_day = preg_replace('/6/', 'Saturday', $final_day);

你拥有它。

答案 2 :(得分:0)

如果您真的想使用switch语句,请将字符串分解为数组:

myDays = explode(",", $str);

然后使用循环中的switch语句遍历myDays。

答案 3 :(得分:0)

您可以使用preg_replace_callback并将$days数组传递给它 这将获得所需数字(使用正则表达式)并从$days数组返回日期 像这样的东西 -

$days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday","Friday","Saturday"]
preg_replace_callback('/\d+/',function($m)use($days){return $days[$m[0]];}, $str)

#OUTPUTS - 
"Monday,Tuesday,Thursday"

答案 4 :(得分:0)

希望这会有所帮助:

<?php

$str='1,2,3';

$array=explode(',',$str);

$finalday='';

foreach($array as $a){

switch ($a) {
                case '0':
                    $finalday.=',Sunday';
                    break;
                case '1':
                    $finalday.=',Monday';
                    break;
                case '2':
                    $finalday.=',Tuesday';
                    break;
                case '3':
                    $finalday.=',Wednesday';
                    break;
                case '4':
                    $finalday.=',Thursday';
                    break;
                case '5':
                    $finalday.=',Friday';
                    break;
                case '6':
                    $finalday.=',Saturday';
                    break;
                default: $finalday='';
               }

}

echo substr($finalday,1);