我的字符串如下:
$str = "Q1-Q4,A3-A6,S9-S11";
有人可以告诉我如何在PHP中分割上面的文本,以便得到如下输出结果:
Q1,Q2,Q3,Q4,A3,A4,A5,A6,S9,S10,S11
答案 0 :(得分:2)
这应该可以帮助您。这将分隔序列,添加额外的项目,并将所有这些作为一个数组方便地返回。
$str = "Q1-Q4,A3-A6,S9-S11";
$ranges = explode (',', $str);
$output = [];
foreach ($ranges as $range) {
$items = explode ('-', $range );
$arr = [];
$fillin = [];
$letter = preg_replace('/[^A-Z]/', '', $items[0]);
$first = preg_replace('/[^0-9]/', '', $items[0]);
$last = preg_replace('/[^0-9]/', '', end($items));
for($i = $first; $i-1 < $last; $i++) {
$fillin[] = $letter . $i;
}
$output[] = $fillin;
}
var_dump( $output );
exit;
答案 1 :(得分:1)
您将要使用正则表达式分割字符串,preg_split是在这种情况下使用的理想函数:
$str = "Q1-Q4,A3-A6,S9-S11";
$temp = preg_split('/[-,]/',$str);
print_r($temp);
希望这会有所帮助,