Heim >Backend-Entwicklung >PHP-Tutorial >PHP 多维数组转换一维数组

PHP 多维数组转换一维数组

WBOY
WBOYOriginal
2016-06-23 13:35:181218Durchsuche

下面是我写的将多维数组转换为一维数组的类方法,转换的一维数组的每个元素包含了相应的值在原有多维数组中的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    ))
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn