str_replace()用于多值替换

时间:2014-07-03 13:15:18

标签: php

是否有可能在一行中使用str_replace进行多值替换。例如,我想将' '替换为'-',将'&'替换为''

7 个答案:

答案 0 :(得分:29)

str_replace()接受数组作为参数。

例如:

$subject = 'milk is white and contains sugar';
str_replace(array('sugar', 'milk'), array('sweet', 'white'), $subject);

实际上,第三个参数也可以是一个数组,因此您可以通过一次str_replace()调用在多个值中进行多次替换。

例如:

$subject = array('milk contains sugar', 'sugar is white', 'sweet as sugar');
str_replace(array('sugar', 'milk'), array('sweet', 'white'), $subject);

正如其他人所说,手册中已明确说明:

  

搜索   正在搜索的值,也称为针。阵列可用于指定多个针。

     

<强>替换   替换找到的搜索值的替换值。可以使用数组来指定多个替换。

     

<强>受试者   正在搜索和替换的字符串或数组,也称为haystack。

答案 1 :(得分:2)

str_replace([' ','-','&'],'',$text);

答案 2 :(得分:1)

记下数组的顺序,因为它对应于顺序。 如下所示,A代替B,B代替C等等。所以你去     

// Outputs F because A is replaced with B, then B is replaced with C, and so on...
// Finally E is replaced with F, because of left to right replacements.
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Outputs: apearpearle pear
// For the same reason mentioned above
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

来源:PHP str_replace

答案 3 :(得分:1)

$name = abcd;

我想用'$'替换'a',用'!'替换'b',所以我需要这样写:

$str = ['a','b'];
$rplc =['$','!'];

echo str_replace("$str","$rplc",$name);

输出:$!cd

答案 4 :(得分:0)

是的,借助str_replace函数,我们可以在没有数组的情况下在一行中进行多个值替换。这是我的代码

echo str_replace(" ","-",str_replace("&","","I like Tea&Coffee"));

答案 5 :(得分:0)

这是我将'替换为'的方式,因此它在SQL查询和“”中不会中断,因为人们一直在电子邮件末尾添加空格:

$check = str_replace("'","''",$_POST['1']);
$checkbox1 = str_replace(" ","",$check);

您可以这样做:

$check = str_replace("&","",$_POST['1']);
$checkbox1 = str_replace(" ","-",$check);

答案 6 :(得分:-1)

您可以使用strtr()函数对要替换的每个字符使用数组进行相同的操作。

Monoid

当然,您要尝试通过数组修改哪些确切数据

(<*>)

现在我们打印结果

Applicative

您可以在此处查看代码的输出内容:http://sandbox.onlinephpfunctions.com/code/382f02bc80924539e24fa686651aee19da9dda12