Skip to content

Instantly share code, notes, and snippets.

@brianseitel
Created December 19, 2011 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save brianseitel/1495488 to your computer and use it in GitHub Desktop.
Save brianseitel/1495488 to your computer and use it in GitHub Desktop.
SimpleXML to Array
function simplexml_to_array($simplexml_object, &$array) {
$children = $simplexml_object->children();
$executed = false;
foreach ($children as $elementName => $node) {
if ($array[$elementName] != null) {
if ($array[$elementName][0] !== null) {
$i = count($array[$elementName]);
simplexml_to_array($node, $array[$elementName][$i]);
} else {
$tmp = $array[$elementName];
$array[$elementName] = array();
$array[$elementName][0] = $tmp;
$i = count($array[$elementName]);
simplexml_to_array($node, $array[$elementName][$i]);
}
} else {
$array[$elementName] = array();
simplexml_to_array($node, $array[$elementName]);
}
$executed = true;
}
if (!$executed && $children->getName() == '')
$array = (string)$simplexml_object;
return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment