0

だから私はそのような文字列を持っているとしましょう。

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

そして、私がそれから得たいのは、そのセットの 5-7 ですが、その 5-7 は、6-9 または 10-1 などの任意のコンボである可能性があり、これは複数回発生します。

そのような

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

では、どうすればいいのでしょうか?

爆発と内破によってコンマを取り除く方法は理解していますが、破線の数字と文字列内のそれらの数字の位置を取得する方法がわかりません。

4

2 に答える 2

1
preg_match_all("/(\d\-\d)/", $myString, $results);

それはそれを行う必要があります

于 2012-04-07T22:59:03.813 に答える
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コードに入れるだけで、個々の番号を取得できます。

これがあなたが求めているものだと思います。

于 2012-04-07T22:59:11.863 に答える