-1

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

q1_week1_monday

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

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

谢谢

4

3 回答 3

6

用于explode()拆分字符串和list构造以将部分分配给变量。之后,使用正则表达式去掉周前缀。

list ($quarter, $week, $day) = explode("_", "q1_week1_monday")
$week = preg_replace("#week(\d+)#", "$1", $week);
于 2013-11-06T17:58:08.170 回答
3

用于explode()通过分隔符 ( _) 分割字符串,然后用于filter_var()获取周数。

$str = 'q1_week1_monday';
$parts = explode('_', $str);
$quarter = $parts[0];
$week = filter_var($parts[1], FILTER_SANITIZE_NUMBER_INT);
$day = $parts[2];

使用list()构造(更整洁):

list($quarter, $week, $day) = explode('_', $str);
$week = filter_var($week, FILTER_SANITIZE_NUMBER_INT);

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

演示!

于 2013-11-06T17:57:17.087 回答
1

explode()像这样使用和访问它

$str="q1_week1_monday";
$str=explode('_',$str);
$quarter = $str[0];//q1
$week = intval($str[1]);//1
$day = $str[2];//monday
于 2013-11-06T17:57:21.547 回答