Чтобы добавить то, что сказали другие, вы можете получить его технически, если отключите список, который меньше, чем вы предполагаете. Например (в GHCi):
Prelude> let l = [1,2,3]
Prelude> let (x:x1:xs) = l
Prelude> x
1
Работает нормально, но если вы сделали:
Prelude> let l2 = [1]
Prelude> let (x:x1:xs) = l2
Prelude> x
*** Exception: <interactive>:294:5-18: Irrefutable pattern failed for pattern (x : x1 : xs)
Возможно, вам лучше просто вытащить какой-нибудь код из сети
http: // www. bin-co.com/php/scripts/xml2array/[1235 impression
Возможно, вас заинтересуют SimpleXML или xml_parse_into_struct .
$ arraydata не передается при последующих вызовах xml2array () и не используется возвращаемое значение, так что да "Моя рекурсия невелика ..." верно; -)
Чтобы добавить новый элемент в существующий массив, вы можете использовать пустые квадратные скобки, $ arr [] = 123; $ arr [$ x] [] = 123;