您的位置:首页 > 产品设计 > UI/UE

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

2012-08-30 10:07 218 查看
分析同事代码并整理得到。

多维数组如下:

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;				//返回一维数组
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: