note 66896 modified in ref.simplexml by danbrown

From: Date: Mon, 18 May 2009 01:25:20 +0000
Subject: note 66896 modified in ref.simplexml by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-155532@lists.php.net to get a copy of this message
Here is my Simple XML to array function, it is recursive and has the benefit of maintaining key value relationships and has worked well for me. <?php function XMLToArray($xml) { if ($xml instanceof SimpleXMLElement) { $children = $xml->children(); $return = null; } foreach ($children as $element => $value) { if ($value instanceof SimpleXMLElement) { $values = (array)$value->children(); if (count($values) > 0) { $return[$element] = XMLToArray($value); } else { if (!isset($return[$element])) { $return[$element] = (string)$value; } else { if (!is_array($return[$element])) { $return[$element] = array($return[$element], (string)$value); } else { $return[$element][] = (string)$value; } } } } } if (is_array($return)) { return $return; } else { return $false; } } ?> --was-- Here is my Simple XML to array function, it is recursive and has the benefit of maintaining key value relationships and has worked well for me. function XMLToArray($xml) { if ($xml instanceof SimpleXMLElement) { $children = $xml->children(); $return = null; } foreach ($children as $element => $value) { if ($value instanceof SimpleXMLElement) { $values = (array)$value->children(); if (count($values) > 0) { $return[$element] = XMLToArray($value); } else { if (!isset($return[$element])) { $return[$element] = (string)$value; } else { if (!is_array($return[$element])) { $return[$element] = array($return[$element], (string)$value); } else { $return[$element][] = (string)$value; } } } } } if (is_array($return)) { return $return; } else { return $false; } } http://php.net/manual/en/ref.simplexml.php

« previous php.notes (#155532) next »