本帖最后由 community147 于 2014-08-28 21:10:54 编辑

解决方案 »

  1.   

    问题解决了arrto2($x,$v["@attributes"]['id']);就ok了
      

  2.   

    加上meta charset就不会乱码了。hh.xml<?xml version="1.0" encoding="gb2312"?>
    <www>
    <hh name="haha1哈哈" />
    <hh name="haha2哈哈">
    <hh name="haha2.1哈哈" />
    <hh name="haha2.2哈哈" /></hh>
    <hh name="haha3哈哈">
    <hh name="haha3.1哈哈" />
    <hh name="haha3.2哈哈" />
    </hh>
    </www><?php
    $xml = simplexml_load_file("hh.xml");
    $arr = json_decode(json_encode($xml),TRUE);
    echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';
    print_r(arrto2($arr['hh']));
    function arrto2($arr,$pid=0){
        static $i=1;
        static $data=array();
        foreach($arr as $v){
            if(is_array($v)){
                foreach($v as $z => $x){
                    if($z==="@attributes"){
                        $v["@attributes"]['id']=$i;
                        $v["@attributes"]['pid']=$pid;
                    $data[$i]=$v["@attributes"];                }else{
                        arrto2($x,$i);
                    }
                    
                    $i++;
                }
            }
        }
        return $data;
    }
    ?>Array
    (
        [1] => Array
            (
                [name] => haha1哈哈
                [id] => 1
                [pid] => 0
            )    [2] => Array
            (
                [name] => haha2哈哈
                [id] => 2
                [pid] => 0
            )    [3] => Array
            (
                [name] => haha2.1哈哈
                [id] => 3
                [pid] => 3
            )    [4] => Array
            (
                [name] => haha2.2哈哈
                [id] => 4
                [pid] => 3
            )    [6] => Array
            (
                [name] => haha3哈哈
                [id] => 6
                [pid] => 0
            )    [7] => Array
            (
                [name] => haha3.1哈哈
                [id] => 7
                [pid] => 7
            )    [8] => Array
            (
                [name] => haha3.2哈哈
                [id] => 8
                [pid] => 7
            ))