我有一个字符串$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
我该怎么做?
答案 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);