Как заменить 2 строки (друг друга) одновременно в PHP - PullRequest
1 голос
/ 18 февраля 2010

То, что я пытаюсь сделать, очень просто, но я пытаюсь сделать это наиболее эффективно, предпочтительно используя php встроенные fns.

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

// output: 3214

str_replace, preg_replace приведет к 1214, что означаетон проходит через массивы, заменяя согласованные строки.Я ищу решение для одновременного «переключения» этих двух (или более) строк.

есть идеи?

Ответы [ 2 ]

6 голосов
/ 18 февраля 2010

Вам нужен перевод строки: 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
?> 
0 голосов
/ 18 февраля 2010
<?php

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

?>

Вы можете изменить шаблон на что-то более общее, например, '/(\d)(\d)(\d)(\d)/'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...