假设我有一个这样的字符串。
$pizza = 1,2,3,5-4,7;
我想要得到的是那一组中的5-7,但5-7可以是任何组合,比如6-9或10-1,这种情况会发生多次。
比如
$pizza=1-4,2,3-1,5-4,7;
那么我该怎么做呢?
我知道如何通过爆炸和内爆来消除逗号,但是我不知道如何获得虚线数字和这些数字在字符串中的位置。
发布于 2012-04-08 06:59:04
preg_match_all("/(\d\-\d)/", $myString, $results);
这样就可以了。
发布于 2012-04-08 06:59:12
您可以使用以下命令将范围“扩展”为各自的数字:
$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
代码中,并获得各个数字。
我想这就是你想要的。
https://stackoverflow.com/questions/10059027
复制相似问题