所以我想说我有一个像这样的字符串。
$pizza = 1,2,3,5-4,7;
而我想要摆脱的是那组中的5-7,但5-7可以是任何组合,比如6-9或10-1,这会多次出现。
如
$pizza=1-4,2,3-1,5-4,7;
那我该怎么办呢?
我理解如何通过爆炸和内爆来摆脱逗号,但后来我不知道如何获取虚线数字以及这些数字在字符串中的位置。
答案 0 :(得分:1)
preg_match_all("/(\d\-\d)/", $myString, $results);
应该这样做
答案 1 :(得分:0)
您可以使用以下方法将范围“扩展”为各自的数字:
$pizza = preg_replace_callback(
"((\d+)-(\d+))",
function($m) {
return implode(",",range(min($m[1],$m[2]),max($m[1],$m[2])));
},
$pizza);
例如,如果您输入1,2,3,7-10,12
,则代码将生成1,2,3,7,8,9,10,12
。然后,您可以将其放入已知的explode
代码中并获取各个数字。
我认为这就是你所要求的。