Вы уже преобразовали XML в массив PHP, так что это просто случай рекурсивного сканирования массива на предмет искомого ключа.
Что-то вроде этого должно сделать это:
<?php
function array_key_search_recursive($array,$keytofind) {
$output = array();
foreach($array as $key=>$value) {
if($key == $keytofind) {
$output[] = $value;
} elseif(is_array($value)) {
$output = array_merge($output, array_key_search_recursive($value,$keytofind));
}
}
return $output;
}
?>
(обратите внимание, что я еще не тестировал этот код; я просто собрал его вместе, чтобы в нем могли быть ошибки)
[ПРАВИТЬ] Первое, что я заметил после публикации этого ответав том, что вы на самом деле не преобразовали его в массив;это все еще объект (он просто print_r
форматирует его как массив).Выше все равно должно работать, но вам нужно работать с ним как с объектом;возможно, самый простой способ - просто привести $array
и $value
как массив типов в цикле foreach
.