次のコードを参照してください
$data = array('or','my','you','that','love');
$arr = array('l'=>' 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) {