如何在PHP中替换多个位置的字符?

时间:2018-03-08 12:00:15

标签: php

代码在下面。我有一个字符串。我想用固定位置替换特定字符。

$string = 'syeds nomasn shibsly';
$char = 't';
$position = [0,4,10];
foreach($position as $pos) {
  $str = substr_replace($string, $char, $pos);
}
echo $str; 

输出为tyedt nomatn shibsly 希望你有我的问题。请帮帮我。

2 个答案:

答案 0 :(得分:2)

您可以像数组一样访问字符串的各个字符:

foreach ($position as $pos) {
  $string[$pos] = $char;
}

答案 1 :(得分:0)

您的原始代码可以正常工作,只需进行一些修改。

您未在循环内更新$string,因此您的$str变量最终只会更改最终位置,因为每次迭代都会查看原始字符串。您还需要将length参数传递给substr_replace,以便替换字符串的正确部分。

尝试将代码更改为:

foreach ($position as $pos) {
    $string = substr_replace($string, $char, $pos, 1);
}

echo $string;
  

tyedt nomatn shibsly

请参阅https://eval.in/968698

(您还需要修改数组语法以使用方括号)