php使用str_replace替换多维数组的实现方法分析


Posted in PHP onJune 15, 2017

本文实例讲述了php使用str_replace替换多维数组的实现方法。分享给大家供大家参考,具体如下:

在php中,如果使用str_replace替换数组中的字符串,只能替换一维的数组,如果是多维数组的话,不能实现全部字符串的替换。于是就写了一个方法实现多维数组字符串的替换,

首先来测试一下直接使用str_replace来测试数组的替换

$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
$a = str_replace('#', 'ccc', $a);
var_dump($a);

发现输出如下:

array (size=2)
 'a' => string 'bdcccc' (length=6)
 'ceshi' =>
  array (size=1)
   'c' =>
    array (size=1)
     'f' => string '#' (length=1)

发现只替换了一维数组中的字符串,更多维的数组并没有并替换掉。

函数实现多维数组的字符串替换

$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
function strReplace(&$array) {
 $array = str_replace('#', 'ccc', $array);
if (is_array($array)) {
  foreach ($array as $key => $val) {
    if (is_array($val)) {
      strReplace($array[$key]);
    }
  }
}
}
strReplace($a);
var_dump($a);

输出如下:

array (size=2)
 'a' => string 'bdcccc' (length=6)
 'ceshi' =>
  array (size=1)
   'c' =>
    array (size=1)
     'f' => string 'ccc' (length=3)

发现实现了多维数组的字符串替换

函数strReplace传入数组的地址,通过递归的方式来实现替换字符串。当然这只是一个很简单的方法,实现的方法很多,喜欢就好!

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
PHP addslashes()函数讲解
Feb 03 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 #PHP
php7基于递归实现删除空文件夹的方法示例
Jun 15 #PHP
php实现的二叉树遍历算法示例
Jun 15 #PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 #PHP
PHP中phar包的使用教程
Jun 14 #PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 #PHP
PHP中关键字interface和implements详解
Jun 14 #PHP
You might like
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
js实现图片无缝循环轮播
2019/10/28 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
2018/12/04 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
django-csrf使用和禁用方式
2020/03/13 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
新年寄语大全
2014/04/12 职场文书
任命书模板
2014/06/04 职场文书
个性与发展自我评价
2015/03/06 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
thinkphp 获取控制器及控制器方法
2021/04/16 PHP
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
Python中tqdm的使用和例子
2022/09/23 Python