本帖最后由 Stephen1967 于 2011-07-14 21:52:01 编辑

解决方案 »

  1.   

    function getNames($id) {
       foreach($ar as $k => $v) {
          if ($id==$k){
             $result=$v;
          }else{
             if (is_array($v)) {
               getNames($k)
           }
          }
       }
    }
    echo getNames(68);
      

  2.   

    有两个子类的时候你想怎么输出,需要考虑getNames(0)这种情况吗?
      

  3.   

    脑子有点短路了,不知道是不是你想要的效果。。
    $ar = 
       Array
    (
        0 => Array
            (
                0 => 3,
                1 => 0,
                2 => '错误类别1'
            ),    1 => Array
            (
                0 => 60,
                1 => 0,
                2 => '错误类别2'
            ),    2 => Array
            (
                0 => 58,
                1 => 3,
                2 => '错字23'
            ),    3 => Array
            (
                0 => 61,
                1 => 60,
                2 => '错别字'
            ),    4 => Array
            (
                0 => 67,
                1 => 2,
                2 => '其它问题'
            ),    5 => Array
            (
                0 => 68,
                1 => 55,
                2 => '不流畅'
            ),    6 => Array
            (
                0 => 69,
                1 => 55,
                2 => '连接错误'
            ),    7 => Array
            (
                0 => 70,
                1 => 55,
                2 => '播放中断'
            ),    8 => Array
            (
                0 => 2,
                1 => 0,
                2 => '错误类别3'
            ),    9 => Array
            (
                0 => 55,
                1 => 2,
                2 => '点播视频'
            ),    10 => Array
            (
                0 => 57,
                1 => 3,
                2 => '阿斯顿发送地方22'
            ),    11 => Array
            (
                0 => 59,
                1 => 2,
                2 => '常见问题'
            ));
    echo "<pre>";
    //print_r($ar);$ar_id_pid = $ar_id_name = array();
    foreach($ar as $v) {
       $ar_id_pid[$v[0]] = $v[1];
       $ar_id_name[$v[0]] = $v[2];
    }
    function getChildren($id, $ar_id_pid, $ar_id_name, $pre) {
       echo $pre.$ar_id_name[$id]."<br />";
       $keys = array_keys($ar_id_pid, $id);
       if (count($keys) > 0) {
          foreach($keys as $v) getChildren($v, $ar_id_pid, $ar_id_name, $pre.'>>');
       }
    }
    getChildren(2, $ar_id_pid, $ar_id_name, '');/*_________输出
    错误类别3
    >>其它问题
    >>点播视频
    >>>>不流畅
    >>>>连接错误
    >>>>播放中断
    >>常见问题*/
      

  4.   

    getChildren(55, $ar_id_pid, $ar_id_name, '');
    /*
    点播视频
    >>不流畅
    >>连接错误
    >>播放中断
    */
    getChildren(67, $ar_id_pid, $ar_id_name, '');
    //其它问题