PHP多次元配列変換一次元配列
次に、私が書いた多次元配列を1次元配列に変換するクラスメソッドです.変換された1次元配列の各要素は、元の多次元配列のkey、valueおよび次元(すなわち深さ)に対応する値を含み、対応する元の要素も配列である場合、対応する1次元要素の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
)
)