如何用PHP交换字符串中两个不同字符的值?A变为B,B变为A.

Man*_*ama 0 php string replace

我在PHP中有一个字符串.我想用另一个字符的值交换某个字符.如果我这样做,A成为B将取代A与B,但已存在的B值将保持不变.当我尝试将B交换为A时,当然存在最初未交换的值,因为它们已经存在.

我试过这段代码.

$hex = "long_hex_string_not_included_here";
$hex = str_replace($a,$b,$hex);
//using this later will produced unwanted extra swaps
$hex = str_replace($b,$a,$hex);
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个交换这些值的函数.

Nic*_*ick 8

只是用strtr.这是它的设计目的:

$string = "abcbca";
echo strtr($string, array('a' => 'b', 'b' => 'a'));
Run Code Online (Sandbox Code Playgroud)

输出:

bacacb
Run Code Online (Sandbox Code Playgroud)

这里有用的关键功能strtr是在两个参数形式中调用时:

替换子字符串后,将不再搜索其新值.

这就是停止a被替换b然后再被替换的东西a.

在3v4l.org上演示