php二维数组 xml,php解析xml到二维数组有关问题,求大神指导

php解析xml到二维数组问题,求大神指导

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

array(

array("name"=>"haha1",id=1,pid=0),

array("name"=>"haha2",id=2,pid=0),

array("name"=>"haha2,1",id=3,pid=2),

array("name"=>"haha2,2",id=4,pid=2),

array("name"=>"haha3",id=5,pid=0),

array("name"=>"haha3,1",id=6,pid=5),

array("name"=>"haha3.2",id=7,pid=5),

)

?>

把最上面的xml代码转换成下面php数组

下面是我写的代码,转换时候pid不对劲,我怎么调试都不行,还请指导

$xml = simplexml_load_file("hh.xml");

$arr = json_decode(json_encode($xml),TRUE);

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;

}

现在问题解决了,不错还有一个问题,解析中文时候会乱码,编码是gb2312,用utf8正常

------解决方案--------------------

加上meta charset就不会乱码了。

hh.xml

$xml = simplexml_load_file("hh.xml");

$arr = json_decode(json_encode($xml),TRUE);

echo '';

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值