分析同事代码并整理得到。
多维数组如下:
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; //返回一维数组
}