/** * transforms a simplexml to an array * * @param string $xml The xml source * @param array $arr The result array * @return array $array The resulting array */ public static function xml2phpArray($xml, $arr) { $iter = 0; foreach ($xml->children() as $b) { $a = $b->getName(); if (!$b->children()) { $arr[$a] = trim($b[0]); } else { $arr[$a][$iter] = array(); $arr[$a][$iter] = xml2phpArray($b, $arr[$a][$iter]); } $iter++; } return $arr; }
function xml2array($source, $arr) { $xml = simplexml_load_string(file_get_contents($source)); $iter = 0; foreach ($xml->children() as $b) { $a = $b->getName(); if (!$b->children()) { $arr[$a] = trim($b[0]); } else { $arr[$a][$iter] = array(); $arr[$a][$iter] = xml2phpArray($b, $arr[$a][$iter]); } $iter++; } return $arr; }