php解析xml到二维数组问题,求大神指导 本帖最后由 community147 于 2014-08-28 21:10:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题解决了arrto2($x,$v["@attributes"]['id']);就ok了 加上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 )) 如何查一个网站的空间服务商 刚写的PHP大家鉴赏一下 无法连接数据库 如何用PHP获取客户端的MAC地址,谢谢! 在线等,正则问题:为什么匹配到了换行符 关于递归函数的问题 php4 中array能不能动态的增加一行(或者把几个array安*列*合并) redhat8.0,apache1.3.2,php4.3.1出现乱码,请问如何解决? 我是icb换了id,发则郁闷贴=) 我在网上都守侯了一天,老天爷,我的幼稚问题还没解决!!大家给点关怀吧!!! 求助大神,如何把QQwry.dat IP库写进memcached里。 php读取网页文件的问题
<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
))