多维数组转化为一维数组(key值=>value值,is_array(value)==false,使用递归)

来源:互联网 发布:大数据人工智能培训 编辑:程序博客网 时间:2024/06/04 19:29

分析同事代码并整理得到。

多维数组如下:

Array(    [340000] => Array        (          [340000] => 安徽省            [children] => Array                (                 [340800] => 安庆                    [340300] => 蚌埠                    [341600] => 亳州                    [341400] => 巢湖                    [341700] => 池州                    [341100] => 滁州                    [341200] => 阜阳                    [340100] => 合肥                    [340600] => 淮北                    [340400] => 淮南                    [341000] => 黄山                    [341500] => 六安                    [340500] => 马鞍山                    [341300] => 宿州                    [340700] => 铜陵                    [340200] => 芜湖                    [341800] => 宣城                )        ))

上边的数组是一个三维数组

 

我们要把它转化为一维数组(key值=>value值,is_array(value)==false)
所以一维数组应该如下:

Array(   [340000] => 安徽省    [340800] => 安庆    [340300] => 蚌埠    [341600] => 亳州    [341400] => 巢湖    [341700] => 池州    [341100] => 滁州    [341200] => 阜阳    [340100] => 合肥    [340600] => 淮北    [340400] => 淮南    [341000] => 黄山    [341500] => 六安    [340500] => 马鞍山    [341300] => 宿州    [340700] => 铜陵    [340200] => 芜湖    [341800] => 宣城)

 

多为数组如何转化

递归,因为有些value不是数组,有些是,我们只取value不是数组的。所以value是数组的话我们就递归直到取到不是value不是数组的。

$tmp = array();//新数组用来放置一维数组function multi2single($data){//多维数组转化为一维数组的方法foreach($data as $key=>$value){//循环多维数组if(is_array($value)){//判断$value值是否为数组multi2single($value);//是数组的话递归调用方法}else{$tmp[$key]=$value;//不是数组的话,重组数组}}return $tmp;//返回一维数组}




 

 

原创粉丝点击