PHP SimpleXMLElement Object數組轉化為普通數組

做微信第三方接口接入的時候發現接口返回的數據都是xml格式的。

以下是如何把xml格式轉化為普通的數組格式取值。

xml格式數據:

$xmlstr="<xml>
        <mch_appid>".$data['mch_appid']."</mch_appid>
        <mchid>".$data['mchid']."</mchid>
        <nonce_str>".$data['nonce_str']."</nonce_str>
        <partner_trade_no>".$data['partner_trade_no']."</partner_trade_no>
        <openid>".$data['openid']."</openid>
        <check_name>".$data['check_name']."</check_name>
        <amount>".$data['amount']."</amount>
        <desc>".$data['desc']."</desc>
        <spbill_create_ip>".$data['spbill_create_ip']."</spbill_create_ip>
        <sign>".$data['sign']."</sign></xml>";
 $res =$this->curl_post_ssl($api, $xmlstr);
       

xml轉化為數組步驟:

$xml = simplexml_load_string($res , 'SimpleXMLElement' , LIBXML_NOCDATA );

但是轉化過來的并不是普通的php數組,而是SimpleXMLElement Object數組

結果如下:

object(SimpleXMLElement)#11 (5) {
  ["return_code"]=>
  string(7) "SUCCESS"
  ["return_msg"]=>
  string(7) "NO_AUTH"
  ["result_code"]=>
  string(4) "FAIL"
  ["err_code"]=>
  string(7) "NO_AUTH"
  ["err_code_des"]=>
  string(73) "產品權限驗證失敗,請查看您當前是否具有該產品的權限"
}

接下來 進行簡單粗暴的強制類型轉換

SimpleXMLElement Object數組 轉化為普通數組步驟:

$xml_data = ((array)$xml);

如果如下:

array(5) {
  ["return_code"]=>
  string(7) "SUCCESS"
  ["return_msg"]=>
  string(7) "NO_AUTH"
  ["result_code"]=>
  string(4) "FAIL"
  ["err_code"]=>
  string(7) "NO_AUTH"
  ["err_code_des"]=>
  string(73) "產品權限驗證失敗,請查看您當前是否具有該產品的權限"
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,366評論 11 349
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 參考:http://www.cnblogs.com/iMouseWu/p/3360099.html?utm_sou...
    cooqi閱讀 4,576評論 0 0
  • 轉眼間已經成了大二學姐 一個曾經的室友轉了專業也搬去了別的寢室。迎新那天寢室里搬進來了一個新來的小十七,呃。。。很...
    湯圓不是元宵QAQ閱讀 144評論 0 0