php simpleXMLElement to array:null value

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php simpleXMLElement to array:null value脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下 XML
<account>
    <id>123</id>
    <email></email>
    <status>ACTIVE</status>
</account>

我想把它作为一个数组变量.因此我用$XMl = simplexML_load_file()读取它.将simpleXMLElement转换为关联数组的最简单方法是使用:json_decode(json_encode((array)$xml),1);

问题是我不想邮件密钥作为空数组,而是作为NULL值.作为SimpleXMLElement,它看起来像:

public 'email' => 
    object(SimpleXMLElement)[205]

而在数组中它看起来像:

'email' => 
    array (size=0)
      empty

我想得到:

'email' => NULL

实现这一点的唯一方法我想到的是遍历所有元素并用空值替换空数组.问题是我的XML更大(上面只是解释问题)而且我必须迭代很多XML元素(这将是手工工作 – 我正在寻找一些自动化的东西).也许我错过了其中一个功能中的一些选项…或者可能还有另一个技巧可以做到这一点?

我无法添加评论,但我认为这对您有用,它应该比正则表达式或循环更快:
//after you json_encode,before you decode
$str = str_replace(':[]',':null',json_encode($array));

JSON中的空数组由“[]”表示.有时,数组被解析为对象,在这种情况下(或作为后备),您也可以替换“:{}”.

脚本宝典总结

以上是脚本宝典为你收集整理的php simpleXMLElement to array:null value全部内容,希望文章能够帮你解决php simpleXMLElement to array:null value所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。