$arr[][][][][][]这样一直找下去。或者重新构造数组,选取值!is_array的,即为你的内容。function findcontent($arr){
  global $newarr;
  foreach($arr as $con) {
    if(is_array($con)) findcontent($con);
    else $newarr[]=$con;
  }
}

解决方案 »

  1.   

    $arr = 你的数组
    $tArr = array();
    function getContent($pArray,&$tArray=NULL){
    foreach($pArray as $k=>$v){
    if(is_array($v)) {
    getContent($v,&$tArray);
    }else if($k=="content"||$k=="name"){
    $tArray[] = $v;
    }
    }
    }getContent($arr,&$tArr);
    echo "<pre>";
    print_r($tArr);
    echo "</pre>";
      

  2.   

    改了一下函数,保留键值方便处理!
    function getContent($pArray,&$tArray=NULL){
    foreach($pArray as $k=>$v){
    if(is_array($v)) {
    getContent($v,&$tArray);
    }else {
    $tArray[][$k] = $v;
    }
    }
    }
      

  3.   

    楼上,&$tArray这种方法和global $tArray的效果应该一样吧?
      

  4.   

    当然可以! 以zairwolfo(君子兰)的代码为例
    function findcontent($arr){
      global $newarr;
      foreach($arr as $con) {
        if(is_array($con)) findcontent($con);
        else $newarr[]=$con;
      }
    }
    其中
        if(is_array($con)) findcontent($con);//递归
        else $newarr[]=$con;//保存,也可在此显示
    是深度优先的,因为递归调用在前。他一直要到达“叶”才返回,所以出现你遇到的问题
    改成广度优先的就可以了
        if(! is_array($con)) $newarr[]=$con;//保存,也可在此显示
        else findcontent($con);//递归
      

  5.   

    还有一个问题.我怎么把[service],[key]等.这些名字解析出来呢??
      

  6.   

    我想解析成
    service_id=123
     key=00
      rand=y
        aim=学校
          content=物理专业
    service_id=124
     key=01
      rand=n
        aim=学校
          content=计算机专业
    ......
    象这样解析出来的话.我想用嵌套的循环来解析.可是数组嵌套的太多了.
    而且这样作的话.我装载写xml的时候也是一个很麻烦的事情.该怎么办呢?
    多谢.
      

  7.   

    这个广度优先的话该怎么做呢?因为它遇到的第一个一定是数组.肯定会走到else下面啊.然后不断的递归啊
      

  8.   

    你打印出现在的显示结果先。不提供一个完整的已实现了的数组的简要结构和你要实现的实例,别人麻烦帮你写。唠叨的话我也没看明白。不过你可以尝试对新数组编辑,比如ksort之类的函数。惭愧没找到倒转数组的具体函数。
      

  9.   

    麻烦您了,我举一个简单的例子:
    <?
    $tArr = array("key" => array("liu","de","hua","level"=>array("zhang","xue","you","file"=>"cai","yi","lin")));
    print_r($tArr);
    ?>
    打印结果如下:
    Array ( [key] => Array ( [0] => liu [1] => de [2] => hua [level] => Array ( [0] => zhang [1] => xue [2] => you [file] => cai [3] => yi [4] => lins ) ) 我怎样才能知道liudehua是属于[key]的,zhangxueyou是属于[level]的,caiyilin是属于file的,如果用您的方法都装到一个数组中去的话,那么我是没有办法区分的,而且象这些[key],[level]都是不一定的.也学在他们下面还有[level_1][file_1]等.您看这样子的话.怎么装在到内存中去呢?而且在我从内存中输出数据的时候.能判断出各个值是属于哪个[key]或者[level] 的呢?
    麻烦您帮我想一下.多谢