PHP实现多维数组转字符串和多维数组转一维数组的方法

一、多维数组转字符串:

一、多维数组转字符串:

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实现多维数组转字符串和多维数组转一维数组的方法

基础教程推荐