У меня возникли проблемы с пониманием правильного синтаксиса для печати результатов массива с помощью SimpleXMLElement. Из моего результата xml я должен попросить пользователя совместить себя с одним из людей, найденных в массиве, и не знаю, как это сделать.Анализ массива в XML-результате
Пример результата XML:
[authentication] => SimpleXMLElement Object
(
[age] => SimpleXMLElement Object
(
[code] => 5
[ambiguous] => SimpleXMLElement Object
(
[person] => Array
(
[0] => SimpleXMLElement Object
(
[name] => Paul Foreman
[question] => SimpleXMLElement Object
(
[id] => dcalc3
[prompt] => What+do+the+%3Cb%3Elast+four%3C%2Fb%3E+digits+of+your+Social+Security+Number+add+up+to%3F
[answer] => 5
)
)
[1] => SimpleXMLElement Object
(
[name] => Paul Foreman
[question] => SimpleXMLElement Object
(
[id] => dcalc3
[prompt] => What+do+the+%3Cb%3Elast+four%3C%2Fb%3E+digits+of+your+Social+Security+Number+add+up+to%3F
[answer] => 6
)
)
)
)
)
)
Решение им ищет:
<?php
$string = $xml_result;
$xml = new SimpleXMLElement($string);
$is_age_code = $xml->authentication->{'age'}->code;
if($x_is_age_code == '5'){
// code 5 means more than one match found
// Ask user verification question
// If answer matches question
// Set current user as that person
}
?>
Как я могу узнать, сколько «Лица» в массиве и идентифицировать их с номером?
Поэтому, учитывая ваш пример XML , номер, который вы ищете, будет 2? Потому что в массиве есть 2 человека '$ xml-> authentication-> age-> ambiguous-> person'? Затем вы можете использовать 'count ($ xml-> authentication-> age-> ambiguous-> person)'. – migg
Я вижу, спасибо, но как я могу ответить на вопрос? $ xml-> authentication -> {'age'} -> ambiguos -> {'person'} -> question -> {'prompt'} не работает и не $ xml-> authentication -> {'age'} -> ambiguos -> {'person'} -> 0 -> {'question'} -> prompt – Hector
Попробуйте '$ xml-> authentication-> age-> ambiguous-> person [0] -> question-> prompt'. Поскольку 'person' является массивом, вы должны использовать его как массив, а не объект. – migg