请教怎么将多维数组转换为二维数组

请问如何将多维数组转换为二维数组?
比如无限级菜单,通过递归后是一个多维数组,我想把这个多维数组转换为二维数组并重新排序后进行foreach,请问这个function该如何写?
------解决方案--------------------
$a = array(
  0=>array(
    'categoryid'=>1,
    'name'=>"AA1",
    'parent'=>0,
    'childs'=>array(
      0=>array(
        'categoryid'=>2,
        'name'=>"BB1",
        'parent'=>1,
        'childs'=>array(
          0=>array(
            'categoryid'=>3,
            'name'=>"CC",
            'parent'=>2,
            'childs'=>array(
              0=>array(
                'categoryid'=>4,
                'name'=>"dd1",
                'parent'=>3,
              ),
              1=>array(
                'categoryid'=>5,
                'name'=>"dd2",
                'parent'=>3,
              ),
            ),
          ),
        ),
      ),
      1=>array(
        'categoryid'=>6,
        'name'=>"BB2",
        'parent'=>1,
      ),
    ),
  ),
  1=>array(
    'categoryid'=>7,
    'name'=>"AA2",
    'parent'=>0,
  )
);
function imp($tree, $children='childs') {
  $imparr = array();
  foreach($tree as $w) {
    if(isset($w[$children])) {
      $t = $w[$children];
      unset($w[$children]);
      $imparr[] = $w;
      if(is_array($t)) $imparr = array_merge($imparr, imp($t, $children));
    } else {
      $imparr[] = $w;
    }
  }
  return $imparr;
}
print_r(imp($a));
Array
(
    [0] => Array
        (
            [categoryid] => 1
            [name] => AA1
            [parent] => 0
        )

    [1] => Array
        (
            [categoryid] => 2
            [name] => BB1
            [parent] => 1
        )

    [2] => Array
        (
            [categoryid] => 3
            [name] => CC
            [parent] => 2
        )

    [3] => Array
        (
            [categoryid] => 4
            [name] => dd1
            [parent] => 3
        )

    [4] => Array
        (
            [categoryid] => 5