ホームページ >バックエンド開発 >PHPチュートリアル >php -str_replace は置換を横断できません
次のコードを参照してください
585e7bb9d908224df69e8845febc0ec7' k ','w'=>'q','e'=>r','t'=>y','m'=>5);
foreach ($data as $k); = > $v) {
foreach ($arr as $key => $value) {
$pattern = $key;
$data[$k] = str_replace; replace ,$v);//置き換えることはできませんか? ?
// $data[$k] = str_replace(array_keys($arr),$arr,$v);
// $data[$k] = str_replace('l','k',$v); }
}
var_dump($data);
?> arr に移動してそれらを照合し、必要に応じて置き換えます。この場合は、次のように記述します:
<?php$data = array('or','my','you','which','love');$pattern = array('l','w','e','t','m');$arr = array('k','q','r','y',5);$newdata = str_replace($pattern, $arr, $data);var_dump($newdata);?>
$data[$k] = str_replace($pattern,$replacment,$v);
この文では、$v が再度コピーされ、$data に置き換えられます。 [$ k] $data[$k] = str_replace($pattern,$replacment,$data[$k]); $data[$k] = str_replace($pattern,$replacment,$v);
$data[$k] は、最後の代入の結果を取得する、ループされた代入です。
ありがとう、このように書くことで置換の効果が得られることはわかっていますが、私の疑問は、なぜ上記の foreach による置換が機能しないのかということです。どうしたの? 。
0 orororororor1 mymymymymy5y2 youyouyouyouyouyou3 whichwhichqhichwhichwhichwhich4 lovekovelovelovrlovelove
ホスト、これは私が出力したループ結果で、実際には foreach にあります。 str_replace は有効になりましたが、後のものに置き換えられたため、置換はないと考えます
foreach ($data as $k => $v) { $v in
は $data[$k] のコピーです
レイヤーループに含まれます
foreach ($data as $k => &$v) {