如何在PHP中将字符串拆分为3个不同的变量?

如何在PHP中将字符串拆分为3个不同的变量?,php,Php,我有一堆复选框,名称如下: q1_week1_monday 例如,如何将这些字符串拆分为3个不同的变量 $quarter = q1; $week = 1; $day = monday; 谢谢使用分隔符(\u)拆分字符串,然后使用获取周数 $str = 'q1_week1_monday'; $parts = explode('_', $str); $quarter = $parts[0]; $week = filter_var($parts[1], FILTER_SANITIZE_NUMBER

我有一堆复选框,名称如下:

q1_week1_monday
例如,如何将这些字符串拆分为3个不同的变量

$quarter = q1;
$week = 1;
$day = monday;
谢谢

使用分隔符(
\u
)拆分字符串,然后使用获取周数

$str = 'q1_week1_monday';
$parts = explode('_', $str);
$quarter = $parts[0];
$week = filter_var($parts[1], FILTER_SANITIZE_NUMBER_INT);
$day = $parts[2];
使用构造(更整洁一点):

注意:这假设字符串的中间部分只包含一个数字


使用
explode()
并将其作为如下变量访问

$str="q1_week1_monday";
$str=explode('_',$str);
$quarter = $str[0];//q1
$week = intval($str[1]);//1
$day = $str[2];//monday
使用
explode()。之后,使用regexp去掉week前缀

list ($quarter, $week, $day) = explode("_", "q1_week1_monday")
$week = preg_replace("#week(\d+)#", "$1", $week);

你跟我打赌6秒:)substr()构造对于有两个数字的星期NUBMER无效。@JohannesH:它已经被修复了。无论如何,我不认为它值得投反对票。现在看起来好多了:)而且-我没有投反对票,我完全同意你的意见,这不合适。我正在考虑的解决方案。只需增强
$week
,使其只包含预期的数字。优雅的解决方案Johannes+1@WojciechFrącz:添加了数字提取。出现以下错误:警告:preg_replace():分隔符不能是字母数字或反斜杠,我的错。更正。在过去几天中使用了太多Java ^^
$week
需要
1
,而不是
week1
:)
list ($quarter, $week, $day) = explode("_", "q1_week1_monday")
$week = preg_replace("#week(\d+)#", "$1", $week);