Home >Backend Development >PHP Tutorial >PHP 多维数组转换一维数组

PHP 多维数组转换一维数组

WBOY
WBOYOriginal
2016-06-23 13:35:181202browse

下面是我写的将多维数组转换为一维数组的类方法,转换的一维数组的每个元素包含了相应的值在原有多维数组中的key,value以及维度(即深度),如果对应的原有元素也是数组,则相应的一维元素的value则表示为--(当然,这个可以改)。在格式化输出多维数组的时候比较有效。

namespace app\libs\utils;class ArrayHelper{    public static function re_array($array, $p_node_deepth=0, $sub_node_deepth=0)    {        $out = array();        foreach($array as $k=>$v){            if(is_array($v)){                $tmp = array("key"=>$k, "value"=>"--","deepth"=>$p_node_deepth);                $out[] = $tmp;                //数组的话,级联调用                $out = array_merge($out, self::re_array($v, $sub_node_deepth+1, $p_node_deepth+1));            }else{                $tmp = array("key"=>$k, "value"=>$v,"deepth"=>$sub_node_deepth);                $out[] = $tmp;            }        }        return $out;    }}

例:

$a = array(    "code"=>0,    "detail"=>array("msg"=>"get data success"),    "func"=>"api");print_r(ArrayHelper::re_array($a));

结果:

Array([0] => Array    (        [key] => code        [value] => 0        [deepth] => 0    )[1] => Array    (        [key] => detail        [value] => --        [deepth] => 0    )[2] => Array    (        [key] => msg        [value] => get data success        [deepth] => 1    )[3] => Array    (        [key] => func        [value] => api        [deepth] => 0    ))
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn