php simpleXMLElement para array: valor nulo
Eu tenho seguindo XML:
<account>
<id>123</id>
<email></email>
<status>ACTIVE</status>
</account>
Eu quero tê-lo como uma variável de matriz. Por isso eu li com$xml = simplexml_load_file()
. A maneira mais simples de converter o simpleXMLElement para um array associativo que eu conheço é moer com:json_decode(json_encode((array) $xml),1);
O problema é que eu não quero pegar oemail
chave como uma matriz vazia, mas sim como umNULL
valor. Como SimpleXMLElement, parece que:
public 'email' =>
object(SimpleXMLElement)[205]
enquanto na matriz, parece:
'email' =>
array (size=0)
empty
Eu gostaria de receber:
'email' => NULL
A única maneira de conseguir isso é interagir com todos os elementos e substituir o array vazio pelo valor nulo. O problema é que meu XML é muito maior (acima é apenas para explicar o problema) e eu teria que iterar muitos elementos XML (e isso seria trabalho manual - estou procurando algo automático). Talvez eu esteja perdendo algumas opções em uma das funções ... ou talvez haja outro truque para fazer isso?