首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

怎么将一个树状数组转换为一个普通的二维数组

2013-03-21 
如何将一个树状数组转换为一个普通的二维数组请教如何将一个树状数组转换为一个普通的二维数组 元素的顺序

如何将一个树状数组转换为一个普通的二维数组
请教如何将一个树状数组转换为一个普通的二维数组 

元素的顺序不要紧~~只要是这个结构就行了

例如
Array
(
    [0] => Array
        (
            [kind_id] => 1103
            [kind_fid] => 1101
            [kind_name] => asdfsadf
            [children] => Array
                (
                    [0] => Array
                        (
                            [kind_id] => 1109
                            [kind_fid] => 1103
                            [kind_name] => testt
                            [children] => Array
                                (
                                )

                        )

                )

        )

    [1] => Array
        (
            [kind_id] => 1104
            [kind_fid] => 1101
            [kind_name] => sdfsdf
            [children] => Array
                (
                    [0] => Array
                        (
                            [kind_id] => 1110
                            [kind_fid] => 1104
                            [kind_name] => test222


                            [children] => Array
                                (
                                )

                        )

                )

        )

    [2] => Array
        (
            [kind_id] => 1107
            [kind_fid] => 1101
            [kind_name] => aaaaaaaa
            [children] => Array
                (
                )

        )

)


转为
Array
(
[0] => Array
        (
            [kind_id] => 1103
            [kind_fid] => 1101
            [kind_name] => asdfsadf
         )
[1] => Array
        (
            [kind_id] => 1109
            [kind_fid] =>1103
            [kind_name] => asdfsadf
         )
[2] => Array
        (
            [kind_id] => 1104
            [kind_fid] => 1101
            [kind_name] => asdfsadf
         )
[3] => Array
        (
            [kind_id] => 1110
            [kind_fid] => 1104
            [kind_name] => asdfsadf
         )
[4] => Array
        (
            [kind_id] => 1107
            [kind_fid] => 1101
            [kind_name] => asdfsadf


         )

)


[解决办法]

$ar = array (
  0 => 
  array (
    'kind_id' => '1103',
    'kind_fid' => '1101',
    'kind_name' => 'asdfsadf',
    'children' => 
    array (
      0 => 
      array (
        'kind_id' => '1109',
        'kind_fid' => '1103',
        'kind_name' => 'testt',
        'children' => 
        array (
        ),
      ),
    ),
  ),
  1 => 
  array (
    'kind_id' => '1104',
    'kind_fid' => '1101',
    'kind_name' => 'sdfsdf',
    'children' => 
    array (
      0 => 
      array (
        'kind_id' => '1110',
        'kind_fid' => '1104',
        'kind_name' => 'test222',
        'children' => 
        array (
        ),
      ),
    ),
  ),
  2 => 
  array (
    'kind_id' => '1107',
    'kind_fid' => '1101',
    'kind_name' => 'aaaaaaaa',
    'children' => 
    array (
    ),
  ),
);

print_r(untree($ar));

function untree($ar) {
  $res = array();
  foreach($ar as $v) {
    $t = $v['children'];
    unset($v['children']);
    $res[] = $v;
    if($t) $res = array_merge($res, untree($t));
  }
  return $res;
}
Array
(
    [0] => Array
        (
            [kind_id] => 1103
            [kind_fid] => 1101
            [kind_name] => asdfsadf
        )

    [1] => Array
        (
            [kind_id] => 1109


            [kind_fid] => 1103
            [kind_name] => testt
        )

    [2] => Array
        (
            [kind_id] => 1104
            [kind_fid] => 1101
            [kind_name] => sdfsdf
        )

    [3] => Array
        (
            [kind_id] => 1110
            [kind_fid] => 1104
            [kind_name] => test222
        )

    [4] => Array
        (
            [kind_id] => 1107
            [kind_fid] => 1101
            [kind_name] => aaaaaaaa
        )

)

热点排行