多维数组转化为一维数组(key值=>value值,is_array(value)==false,使用递归)
2012-08-30 10:07
218 查看
分析同事代码并整理得到。
多维数组如下:
上边的数组是一个三维数组
我们要把它转化为一维数组(key值=>value值,is_array(value)==false)
所以一维数组应该如下:
多为数组如何转化
递归,因为有些value不是数组,有些是,我们只取value不是数组的。所以value是数组的话我们就递归直到取到不是value不是数组的。
多维数组如下:
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; //返回一维数组 }
相关文章推荐
- List<T> 转化为DataTable,使用Array.ForEach()
- 实现多维数组转化为一维数组
- [基础]php递归将多维数组转换为一维数组
- 多维数组到一维数组转化
- 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
- 多维数组转化成一维数组
- PHP使用array_multisort对多个数组或多维数组进行排序
- Flex4中使用split将字符串String转化为数组Array
- PHP开发小技巧③—实现多维数组转化为一维数组
- 使用 array_multisort 对多维数组排序
- PHP使用array_multisort对多个数组或多维数组进行排序
- 使用 array_multisort 对多维数组排序
- PHP将多维数组转化为一维数组
- js一维数组、多维数组和对象的混合使用方法
- PHP使用array_fill定义多维数组的方法
- 使用 unset 和 array_filter 过滤多维数组
- 安装sybase出现 找不到JVM错误请使用选项 -is:javahome<JAVA HOME DIR>
- php数组合并array_merge()函数使用注意事项
- 详解Python中的array数组模块相关使用
- array_multisort — 对多个数组或多维数组进行排序