php数组一对一替换实现代码
2023-06-13 09:14:35 时间
<?php
header("Content-type:text/html;charset=utf-8");
functionmultiple_replace_words($word,$replace,$string,$tmp_match="#a_a#"){
preg_match_all("/".$word."/",$string,$matches);//匹配所有关键词
$search=explode(",","/".implode("/,/",$matches[0])."/");
//不存在匹配关键词
if(empty($matches[0]))returnfalse;
//特殊替换设置
$count=count($matches[0]);
foreach($replaceas$key=>$val){
if(!isset($matches[0][$key]))unset($replace[$key]);//剔除越界替换
}
//合并特殊替换数组与匹配数组
for($i=0;$i<$count;$i++){
$matches[0][$i]=isset($replace[$i])?$replace[$i]:$matches[0][$i];
}
$replace=$matches[0];
//防止替换循环,也就是替换字符仍是被替换字符,此时将其临时替换一个特定字符$tmp_match
$replace=implode(",",$replace);
$replace=str_replace($word,$tmp_match,$replace);//临时替换匹配字符
$replace=explode(",",$replace);
//替换处理
$string=preg_replace($search,$replace,$string,1);//每次只替换数组中的一个
$string=str_replace($tmp_match,$word,$string);//还原临时替换的匹配字符
return$string;
}
//示例1
$string="aaabaaacaaadaaa";
$word="aaa";
$replace=array(null,"xxx","yyy");
echo"原文:".$string."<br/>输出:".multiple_replace_words($word,$replace,$string)."<br/><br/>";
//示例2
$string="中文aaab中文ccaaad中文eee";
$word="中文";
$replace=array(null,"(替换中文2)","(替换中文3)");
echo"原文:".$string."<br/>输出:".multiple_replace_words($word,$replace,$string);
/*
输出结果:
原文:aaabaaacaaadaaa
输出:aaabxxxcyyydaaa
原文:中文aaab中文ccaaad中文eee
输出:中文aaab(替换中文2)ccaaad(替换中文3)eee
//*/
作者:Zjmainstay
相关文章
- php implode函数 多维数组
- 【说站】php数组排序并输出
- 如何运行PHP代码_运行php网站
- 环境管理 Linux下如何实现多版本PHP环境管理(linux多php版本)
- PHP操作 二维数组模拟mysql函数详解编程语言
- 数据库PHP编程实现从Oracle数据库读取数据(php读取oracle)
- Linux环境下,如何高效、简单地编写PHP代码(linux下写php)
- 利用PHP实现MySQL数据库操作的简易指南(php实现mysql)
- PHP连接MSSQL数据库的方法和步骤(php如何连接mssql)
- PHP连接MS SQL服务器添加数据(php 添加mssql)
- PHP操作MySQL数据库的封装简单化(php操作mysql封装)
- 强悍的表现PHP与Redis的连接(redis链接php)
- 《PHP编程最快明白》第三讲:php数组
- php中显示数组与对象的实现代码
- php简单对象与数组的转换函数代码(php多层数组和对象的转换)
- 第4章数据处理-php数组的处理-郑阿奇
- PHP中将数组转成XML格式的实现代码
- php数组中删除元素的实现代码
- php中数组首字符过滤功能代码
- php数组的概述及分类与声明代码演示
- php对二维数组按指定键值key排序示例代码