一、多维数组转字符串:
一、多维数组转字符串:
在PHP中实现多维数组转字符串的方法有如下两种:
1.递归方法
//递归遍历方法实现多维数组转字符串
function arrToStr($arr){
$str = '';
foreach($arr as $key=>$val){
if(is_array($val)){
$str.= arrToStr($val);//再次调用arrToStr()
}else{
$str.= $val.'|';//将所有的值用'|'拼接字符串
}
}
return $str;
}
//测试代码
$arr = array('a','b',array('c','d',array('e','f','g'),'h'),'i','j');
$str = arrToStr($arr);
echo $str; //输出a|b|c|d|e|f|g|h|i|j|
2.使用PHP系统函数
//使用implode()函数实现多维数组转字符串
function arrToStr($arr){
$toStr = array();
array_walk_recursive($arr,function($v,$k) use (&$toStr){ $toStr[] = $v; });//将多维数组转一维数组
return implode("|",$toStr);//将一维数组中的所有值用'|'拼接成字符串
}
//测试代码
$arr = array('a','b',array('c','d',array('e','f','g'),'h'),'i','j');
$str = arrToStr($arr);
echo $str; //输出a|b|c|d|e|f|g|h|i|j|
二、多维数组转一维数组
在PHP中实现多维数组转一维数组的方法有如下两种:
1.递归方法
//递归遍历方法实现多维数组转一维数组
function arrToOne($arr){
foreach($arr as $key=>$val){
if(is_array($val)){
$arr = array_merge($arr,arrToOne($val));//递归调用arrToOne()函数重新整理数组
unset($arr[$key]);//删除原有的多维数组
}
}
return $arr;
}
//测试代码
$arr = array('a','b',array('c','d',array('e','f','g'),'h'),'i','j');
$toArr = arrToOne($arr);
print_r($toArr); //输出array('a','b','c','d','e','f','g','h','i','j')
2.使用PHP系统函数
//使用array_reduce()函数将一个多维数组转换成一维数组
function arrToOne($arr){
return array_reduce($arr,function($v,$w){
if(is_array($w)){
return array_merge($v,arrToOne($w));
}else{
return array_merge($v,array($w));
}
},array());
}
//测试代码
$arr = array('a','b',array('c','d',array('e','f','g'),'h'),'i','j');
$toArr = arrToOne($arr);
print_r($toArr); //输出array('a','b','c','d','e','f','g','h','i','j')
以上就是PHP实现多维数组转字符串和多维数组转一维数组的两种方法,希望对你有所帮助。
沃梦达教程
本文标题为:PHP实现多维数组转字符串和多维数组转一维数组的方法
基础教程推荐
猜你喜欢
- PHP设计模式(八)装饰器模式Decorator实例详解【结构型】 2023-04-19
- PHP递归遍历文件夹去除注释并压缩php源代码的方法示例 2022-10-18
- 完美安装centos7编译安装php5.6.40(亲测成功!) 2023-09-02
- PHP和JS之间的数据交互并处理 2023-07-12
- PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤) 2023-04-25
- 总结PHP中初始化空数组的最佳方法 2022-12-15
- php中数字、字符与对象判断函数用法实例 2024-01-14
- PHP原型模式Prototype Pattern的使用介绍 2023-07-12
- PHP中使用CURL发送get/post请求上传图片批处理功能 2022-11-23
- Yii框架常见缓存应用实例小结 2023-02-13