解决方案 »

  1.   

    http://bbs.csdn.net/topics/370094009
      

  2.   


    $brr=array();
    foreach($arr as $k=>$v)
    {
    if( empty($v['pid']) )
    if( isset($brr[$v['id']]) )
    {
    $brr[$v['id']][]=$v['id'];
    $brr[$v['id']][]=$v['pid'];
    }else
    $brr[$v['id']]=$v;
    else{
    if(!isset($brr[$v['pid']]))
    $brr[$v['pid']]=array();
    $brr[$v['pid']]['str'][]=$v;
    }
    }
    sort($brr);
      

  3.   


    版主这个得到的结果是这样的,如果把建为4的去掉就好了啊,因为建为4的已经放到208里面了,就不需要了Array
    (
        [1] => Array
            (
                [id] => 1
                [pid] => 
            )    [4] => Array
            (
                [id] => 4
                [pid] => 208
            )    [208] => Array
            (
                [id] => 208
                [pid] => 
                [child] => Array
                    (
                        [4] => Array
                            (
                                [id] => 4
                                [pid] => 208
                            )                )        ))
      

  4.   


    $brr=array();
    foreach($arr as $k=>$v)
    {
    if( empty($v['pid']) )
    {
    if( !isset($brr[$v['id']]) )
    $brr[$v['id']]=$v;
    }else{
    if(!isset($brr[$v['pid']]))
    $brr[$v['pid']]=array();
    $brr[$v['pid']]['str'][]=$v;
    }
    }
    sort($brr);