php里xml转array,xml转数组

首先读取xml文件获取里面的数据

$xml_str = file_get_contents("a.xml");


然后把XML字符串载入对象中

$xml = simplexml_load_string($xml_str);


/**
 * [xml_to_array object(xml)数据转换成数组]
 * @param  [type] $xml [传入xml]
 * @return [type]      [description]
 */
public function xml_to_array( $xml )
{
    if (gettype($xml) == 'object'){
        $xml = get_object_vars($xml);
    }
    
    foreach ($xml as $key => $v) {
      if (gettype($v) == 'object' || is_array($v)) {
          $xml[$key] = $this->xml_to_array($v);
      }
    }
    return $xml;
}
最后调用这个我写的xml转为array的方法

$xml_data = $this->xml_to_array($xml);
最后的$xml_data就是个多维数组



PS:转换的过程中遇到的问题主要是认为 $xml这个对象里面全是对象,最后发现里面也有数组,所以转换的时候需要判断!