如何在PHP中同时替换2个字符串(相互之间)

时间:2010-02-18 01:46:26

标签: php string function replace

我想要做的事情非常简单,但我希望最有效率地做到这一点,最好是使用php内置功能。<​​/ p>

$str = '1234';
echo replace_function(array('1','3'),array('3','1'),$str);

// output: 3214

str_replace,preg_replace将导致1214,这意味着它将通过数组,替换匹配的字符串。我正在寻找一种同时“切换”这两个(或更多)字符串的解决方案。

任何想法?

2 个答案:

答案 0 :(得分:6)

你需要字符串翻译: http://php.net/manual/en/function.strtr.php

<?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
// = hello all, I said hi
?> 

答案 1 :(得分:-2)

<?php

$subject = '1234';
$result = preg_replace('/(1)(2)(3)(4)/si', '$3$2$1$4', $subject);
var_dump($result);

?>

您可以将模式更改为更通用的模式,例如'/(\ d)(\ d)(\ d)(\ d)/'。