Здравствуйте. Пытаюсь вывести многомерный SimpleXMLElement в массив. Использую функцию:
function xmlToArray($xml) {
$xml = (array) $xml;
if(empty($xml)) {
return null;
}
foreach ($xml as $key=>$val) {
if ($val instanceof SimpleXMLElement) {
$xml[$key] = xmlToArray($val);
} elseif (empty($val)) {
$xml[$key] = null;
}
}
return $xml;
}
Она помогает но только для первых уровней массива. Далее идет все тот-же SimpleXMLElement Object
Пример ответа (интеграция с crm, код xml идет по api).
Array
(
[users] => Array
(
[@attributes] => Array
(
[totalCount] => 10
[count] => 10
)
[user] => Array
(
[0] => SimpleXMLElement Object
(
[id] => 5911138
[name] => Администратор площадки
[lastName] => SimpleXMLElement Object
(
)
[login] => Admin
[email] => space@site.ru
[jabber] => SimpleXMLElement Object
(
)
Т.е. первые 3 уровня при помощи вышеуказанной функции конвертировались в array, а остальные нет.
Как решить эту проблему?