<?php
function arrayToXml($array, \SimpleXMLElement $xml)
{
foreach ($array as $key => $value) {
if (is_array($value)) {
if (!is_numeric($key)) {
$subNode = $xml->addChild($key);
} else {
$subNode = $xml->addChild('item' . $key);
}
arrayToXml($value, $subNode);
} else {
$xml->addChild($key, htmlspecialchars($value));
}
}
}
$array = [
'key' => 'value',
'arrKey' => [
'subkey1' => 1,
'subkey2' => 2,
],
0 => 'numeric zero',
1 => 'another',
2 => [
'adin', 'two', 'three'
],
];
$xml = new \SimpleXMLElement('<response/>');
arrayToXml($array, $xml);
echo $xml->asXML();
echo PHP_EOL;
$xml = new SimpleXMLElement('<response/>');
array_walk_recursive(array_flip($array), array ($xml, 'addChild'));
print $xml->asXML();
preferences:
38.8 ms | 402 KiB | 5 Q