/**
* xml转化为数组
* @param [type] $xml [description]
*
*
*
*
* @return [type] [description]
*Array
(
[0] => Array
(
[tag] => APPID
[attributes] =>
[val] => wx495813085bb41c7a
[level] => 2
)
[1] => Array
(
[tag] => ATTACH
[attributes] =>
[val] => 4757,10
[level] => 2
)
)
*
*/
function xml_to_array($xml){
// 创建解析器
$parser = xml_parser_create();
// 将 XML 数据解析到数组中
xml_parse_into_struct($parser, $xml, $vals, $index);
// 释放解析器
xml_parser_free($parser);
// 数组处理
$arr = array();
$t=0;
foreach($vals as $value) {
$type = $value['type'];
$tag = $value['tag'];
$level = $value['level'];
$attributes = isset($value['attributes'])?$value['attributes']:"";
$val = isset($value['value'])?$value['value']:"";
switch ($type) {
case 'open':
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['level'] = $level;
$t++;
}
break;
case "complete":
if ($attributes != "" || $val != "") {
$arr[$t]['tag'] = $tag;
$arr[$t]['attributes'] = $attributes;
$arr[$t]['val'] = $val;
$arr[$t]['level'] = $level;
$t++;
}
break;
}
}
return $arr;
}
php 如何将xml转为数组array
关注
打赏