当前位置 : 主页 > 网络编程 > PHP >

PHP object(SimpleXMLElement) 对象转换为数组

来源:互联网 收集:自由互联 发布时间:2021-06-30
更多PHP小窍门:http://www.libs.org.cn 1. [代码] 示例:PHP 输出的object(SimpleXMLElement)结果 object(SimpleXMLElement)[9] public 'result' = object(SimpleXMLElement)[8] public 'err_code' = string '0' (length=1) public 'model'
更多PHP小窍门:http://www.libs.org.cn

1. [代码]示例:PHP 输出的object(SimpleXMLElement)结果    

object(SimpleXMLElement)[9]  
public 'result' => 
    object(SimpleXMLElement)[8]      
      public 'err_code' => string '0' (length=1)
      public 'model' => string '000000000000^000000000000' (length=26)
      public 'success' => string 'true' (length=4)
  public 'request_id' => string '000000000000' (length=13)

2. [代码]示例:PHP object(SimpleXMLElement) 对象转换为数组的方式    

class xml{
     
    /**
    * object(SimpleXMLElement) 对象转换为数组
    * convert simplexml object to array sets
    * $array_tags 表示需要转为数组的 xml 标签。例:array('item', '')
    * 出错返回False
    *
    * @param object $simplexml_obj
    * @param array $array_tags
    * @param int $strip_white 是否清除左右空格
    * @return mixed
    */
    public static function toArray($simplexml_obj, $array_tags=array(), $strip_white=1)
    {    
        if( $simplexml_obj )
        {
            if( count($simplexml_obj)==0 )
                return $strip_white?trim((string)$simplexml_obj):(string)$simplexml_obj;
      
            $attr = array();
            foreach ($simplexml_obj as $k=>$val) {
                if( !empty($array_tags) && in_array($k, $array_tags) ) {
                    $attr[] = self::toArray($val, $array_tags, $strip_white);
                }else{
                    $attr[$k] = self::toArray($val, $array_tags, $strip_white);
                }
            }
            return $attr;
        }
          
        return false;
    }
}
网友评论