1

文字列があると仮定します

$str="0000,1023, 1024,1025, 1024,1023,1027,1025 , 1024,1025,0000 " ;

1024 が 3 つあるので、次のように 3 つ目を JJJJ に置き換えたい:

出力:

0000,1023, 1024 ,1025, 1024 ,1023,1027,1025, JJJJ ,1025,0000

str_replaceの作り方

助けてくれてありがとう

4

7 に答える 7

1

あなたの質問が尋ねるように、これを行うために使用したいと考えてstr_replaceいます。これはおそらく最良のオプションではありませんが、その関数を使用して行うことは次のとおりです。文字列全体に「JJJJ」のインスタンスが他にないと仮定すると、次のようにすることができます。

$str = "0000,1023,1024,1025,1024,1023,1027,1025,1024,1025,0000";
$str = str_replace('1024','JJJJ',$str,3)
$str = str_replace('JJJJ','1024',$str,2);
于 2013-04-26T15:23:06.480 に答える
0

strpos() を 3 回使用して、文字列内の 3 番目の 1024 の位置を取得してから置換するか、3 番目の 1024 に一致する preg_replace() で使用する正規表現を作成できます。

于 2013-04-26T15:21:23.667 に答える
0

次のようにします。

$newstring = substr_replace($str,'JJJJ', strrpos($str, '1024'), strlen('1024') );

実際のデモを見る

于 2013-04-26T15:23:58.937 に答える
0

文字列の最後の出現を見つけたい場合は、使用できますstrrpos

于 2013-04-26T15:21:37.647 に答える
0

これは、同じ関数への呼び出しが少なくexplode、配列を繰り返し処理する必要がないソリューションimplodeです。

// replace the first three occurrences
$replaced = str_replace('1024', 'JJJJ', $str, 3);
// now replace the firs two, which you wanted to keep
$final = str_replace('JJJJ', '1024', $replaced, 2);
于 2013-04-26T15:22:59.370 に答える