字符串php中的多字符替换
假设我有以下字符串:字符串php中的多字符替换,php,php-5.6,Php,Php 5.6,假设我有以下字符串: $string = 'xxyyzz'; 然后我有一个替换数组,如下所示: $subs = ['xy']; 这意味着在我的字符串中,每个x都应该替换为y,每个y都应该替换为x。假设我的替换数组只能包含我的$string中要替换的字符对 我该怎么做呢 我尝试了使用str\u replace以下方法,但不起作用: foreach ($subs as $sub) { $sub_arr = str_split($sub); $reversed_sub_arr =
$string = 'xxyyzz';
然后我有一个替换数组,如下所示:
$subs = ['xy'];
这意味着在我的字符串中,每个x都应该替换为y,每个y都应该替换为x。假设我的替换数组只能包含我的$string中要替换的字符对
我该怎么做呢
我尝试了使用str\u replace以下方法,但不起作用:
foreach ($subs as $sub) {
$sub_arr = str_split($sub);
$reversed_sub_arr = array_reverse($sub_arr);
$output = str_replace($sub_arr, $reversed_sub_arr, str_split($string));
}
$output = implode('', $output);
但是输出给我xxxxzz
输出应为yyxxzz
感谢您的帮助这对您的案例有效
$string = 'xxyyzz';
$subs = ['xy'];
foreach ($subs as $sub) {
$sub_arr = str_split($sub);
$output = strtr($string, array($sub_arr[0]=>$sub_arr[1], $sub_arr[1]=>$sub_arr[0]));
}
echo $output; //yyxxzz
这对你的案子有效吗
$string = 'xxyyzz';
$subs = ['xy'];
foreach ($subs as $sub) {
$sub_arr = str_split($sub);
$output = strtr($string, array($sub_arr[0]=>$sub_arr[1], $sub_arr[1]=>$sub_arr[0]));
}
echo $output; //yyxxzz
如果
$subs
数组中的两个项与$subs=['xy','dz']类似,则扩展@Orgil answer
$string = $output = 'xxyyzz';
$subs = ['xy', 'dz'];
foreach ($subs as $sub) {
$sub_arr = str_split($sub);
$output = strtr($output, array($sub_arr[0]=>$sub_arr[1], $sub_arr[1]=>$sub_arr[0]));
}
echo $output;
如果
$subs
数组中的两个项与$subs=['xy','dz']类似,则扩展@Orgil answer
$string = $output = 'xxyyzz';
$subs = ['xy', 'dz'];
foreach ($subs as $sub) {
$sub_arr = str_split($sub);
$output = strtr($output, array($sub_arr[0]=>$sub_arr[1], $sub_arr[1]=>$sub_arr[0]));
}
echo $output;
你好。如果我在数组subs中只有一个项,那么这是可行的,如果我有两个项,比如$subs=['xy','dz'],其中x应该被y替换,y应该被x替换,d应该被z替换,z应该被dt替换,在交换xxyyyddzzhi之后,在->xxyyzzdd之前也有效。如果我在数组subs中只有一个项,那么这是可行的,如果我有两个项,比如$subs=['xy','dz'],其中x应该替换为y,y应该替换为x,d应该替换为z,z应该替换为dt,在交换xxyyddzz之后,在->xxyyzzdd之前,z应该也有效