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 相关文章推荐
php at(@)符号的用法简介
Jul 11 PHP
PHP 数组教程 定义数组
Oct 23 PHP
PHP 验证码的实现代码
Jul 17 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
Apr 24 PHP
php简单防盗链实现方法
Jul 29 PHP
php实现Session存储到Redis
Nov 11 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP 柱状图实现代码
2009/12/04 PHP
php array_walk() 数组函数
2011/07/12 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
哪些是python中web开发框架
2020/06/17 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
新闻学毕业生自荐信
2013/11/15 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
主题实践活动总结
2014/05/08 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
租房协议书
2014/09/12 职场文书
历史博物馆观后感
2015/06/05 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
Python anaconda安装库命令详解
2021/10/16 Python
Python 数据可视化之Seaborn详解
2021/11/02 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记