在字符串php中找到与 - 连接的整数

时间:2012-04-07 22:55:01

标签: php string

所以我想说我有一个像这样的字符串。

$pizza = 1,2,3,5-4,7;

而我想要摆脱的是那组中的5-7,但5-7可以是任何组合,比如6-9或10-1,这会多次出现。

$pizza=1-4,2,3-1,5-4,7;

那我该怎么办呢?

我理解如何通过爆炸和内爆来摆脱逗号,但后来我不知道如何获取虚线数字以及这些数字在字符串中的位置。

2 个答案:

答案 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代码中并获取各个数字。

我认为这就是你所要求的。