在PHP字符串中交换批量字符

时间:2014-03-23 12:37:26

标签: php string

希望对你们来说这不是一件困难的事情,我遇到了一整套字符交换的问题。

这是我到目前为止所拥有的;

// String to Convert
$rawstring = $_REQUEST['message'];

// Arrays
$original =     array('a', 'b', 'b', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',);
$replacements = array('z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a', '9', '8', '7', '6', '5', '4', '3', '2', '1', '0',);
//Final string
$Response = str_replace($original, $replacements, $rawstring);

由于相当明显的原因,这并没有给出理想的结果,因为当解析器进入数组的后半部分时,它正在转换它已经转换的字符。

我在其他一些问题中已经看到了移位字符的使用,在上面的例子中,因为它目前是直截了当的,所以我希望能够改变编码器' (如果你愿意的话)调整到不同的字母组合。

我再次(一如既往)感谢您的帮助,并期待完成这项工作:)

P.S。据我所知,这只考虑了此时的小写情况。

1 个答案:

答案 0 :(得分:2)

要逐个翻译字符,请改用strtr

$Response = strtr($rawstring, array_combine($original, $replacements));