0

3 つの文字列を 1 つに結合しようとしましたが、うまくいきません。

弦は下。

$from="/2/3/4/5/6/";
$to="/30/31/32/33/34/";
$sub="/2/3/4/5/6/7/8/9/10/11/12/";#this is dynamic, ever changing past > (/2/3/4/5/6/)

出力は次のようになります。

$output="/30/31/32/33/34/6/7/8/9/10/11/12/";

それ以外の場合$subは、次のように変更されます。

$from="/2/3/4/5/6/";
$to="/30/31/32/33/34/";
$sub="/2/3/4/5/6/7/8/";
$output="/30/31/32/33/34/6/7/8/";

それ以外の場合$toは、これを変更します。

$from="/2/3/4/5/6/";
$to="/30/31/";
$sub="/2/3/4/5/6/7/8/";
$output="/30/31/6/7/8/";

$toを最初に、次に最後に、最後の前$subを引いて、1 つの文字列に結合する必要があります。$from/*/(eg./6/)

これはどのように可能ですか?

4

2 に答える 2

0

基本的に、文字列内にシリアル化された配列構造を格納しています。賢い爆発は役立つはずです:

$output = $to
  . implode('/', array_diff(
      explode('/', $sub),
      array_slice(explode('/', $from), 0, -2)
    )) . '/';

別の方法は正規表現である可能性があります

于 2012-07-28T19:10:07.837 に答える
0

これは、探しているものを取得するのに役立つ場合があります。

$str1 = substr($from, -2);
$pos = strpos($sub,$str1);
$str2 = substr($sub,$pos);
$output = $to.$str2;
于 2012-07-28T20:14:03.213 に答える