深入理解:str_replace & strtr

本文探讨了在编程中使用str_replace和strtr函数进行字符串替换的方法,展示了如何通过不同的参数设置实现循环替换、对位元素替换以及按字符位替换的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$search = [
    'xyz', '123'
  ];
  $replace = [
      '123', '@@@'
  ];

//
$str = '#xyz123#';

//循环替换
$ret1 = str_replace($search, $replace, $str); //#@@@@@@#

//对位元素替换
$ret2 = strtr($str, ['xyz' => '123', '123' => '@@@']); //#123@@@#

//按 char 位替换,对应char位没有,则不处理
$ret3 = strtr($str, 'xyz123', '!'); //#!yz123# , 只替换了 a
PHP字符串替换函数strtr()可以用于将一个字符串中的指定字符或字符串替换成另一个字符或字符串。strtr()函数的使用方法如下: ```php strtr(string $str, array $replace_pairs): string ``` 其中,$str参数为要进行替换的字符串,$replace_pairs参数是一个包含替换规则的关联数组。 例如,将字符串中的"Hello"替换成"Hi",可以使用以下代码: ```php $str = "Hello World"; $replace_pairs = array("Hello" => "Hi"); $new_str = strtr($str, $replace_pairs); echo $new_str; // 输出:Hi World ``` 如果要同时替换多个字符或字符串,可以在$replace_pairs数组中添加更多的键值对。 然而,PHPstrtr()函数在性能上并不是非常优秀,因为它是通过遍历整个字符串来逐个替换匹配的字符或字符串。因此,一些开发者会选择手动实现一个更高效的字符串替换函数。 以下是一个手动实现的字符串替换函数: ```php function str_replace_all($search, $replace, $string) { $pos = 0; $len = strlen($search); while (($pos = strpos($string, $search, $pos)) !== false) { $string = substr_replace($string, $replace, $pos, $len); $pos += strlen($replace); } return $string; } ``` 这个函数通过循环遍历字符串,使用PHPstrpos()函数来查找匹配的字符或字符串,并使用substr_replace()函数来进行替换。这种方法比strtr()函数更快,因为它不需要遍历整个字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值