Вытащить элементы из объекта и собрать в массив

rafaello

Новичок
Друзья!
Пожалуйста, подскажите!
Есть ответ сервера в виде
PHP:
$movies
Если сделать так
PHP:
print_r($movies)
то выдает
PHP:
SimpleXMLElement Object ( [returncode] => SUCCESS [meetings] => SimpleXMLElement Object ( [meeting] => Array ( [0] => SimpleXMLElement Object ( [meetingID] => 5222e50b9cd3a... здесь я прервал ...)))
Мне необходимо вытащить все meetingID и собрать их в обычный массив, чтобы можно было обратиться к элементу этого массива, как, например:
$result[] = 5222e50b9cd3a;

Пытаюсь сделать так:

PHP:
foreach ($movies->meetings->meeting as $m){	
$mt[] = $m->meetingID;
}
Получаю
PHP:
print_r($mt);
Array ( [0] => SimpleXMLElement Object ( [0] => 5222e50b9cd3a ) [1] => SimpleXMLElement Object ( [0] => 123 ) )
Пожалуйста, подмогните советом, как же все-таки вытащить все meetingID и собрать их в обычный массив?
Спасибо!
 

WMix

герр M:)ller
Партнер клуба
PHP:
$xml = simplexml_load_string($xmlstring);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
возможно глупо, но это работает
 
  • Like
Реакции: A1x

rafaello

Новичок
В принципе мы сделали одно и то же
что
PHP:
$ids = $xml->xpath('//meetingID');
что
PHP:
foreach ($movies->meetings->meeting as $m){    
$mt[] = $m->meetingID;
}
Меня беспокоит другой вопрос.
Как я объяснял вначале, мне необходимо собрать все meetingID в обычный неассоц. массив. Задача такая. Проверить значение meetingID из базы данных на присутствие ее в этом массиве. Используем функцию
PHP:
in_array($meetingID, $mt)
Но
PHP:
foreach ($movies->meetings->meeting as $m){    
$mt[] = $m->meetingID;
}
echo $mt[0].'<br />'.$mt[1];
дает
PHP:
g4465ge6r
erg48rg44
в то время, как
PHP:
print_r($mt);
дает
PHP:
Array ( [0] => SimpleXMLElement Object ( [0] => g4465ge6r ) [1] => SimpleXMLElement Object ( [0] => erg48rg44 ))
Меня волнует, будет ли корректно работать
PHP:
in_array($meetingID, $mt)
 

AmdY

Пью пиво
Команда форума
ура, я правильно догадался, потому и советовал смотреть примеры, xpath это как sql, можно делать запросы с условиями
PHP:
$xml = simplexml_load_string($string); 
$result = $xml->xpath("//size[@label='Large']");
$res = $xml->xpath("book/price[.>'40']/parent::*");
 

rafaello

Новичок
Пардон, не ответил сразу. В общем есть пища для размышления. Спасибо за помощь, действительно помогло.
 
Сверху