一、多维数组转字符串:
在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实现多维数组转字符串和多维数组转一维数组的方法 - Python技术站