Передо мной стоит задачка, попарсить xml и сделать сортировку по <price>
Решил использовать xmlreader и у меня получился следующий код:
<?php
$reader = new XMLReader();
$reader->open('Test.xml');
$offer = array();
while ($reader->read()) {
switch ($reader->nodeType) {
case (XMLReader::ELEMENT):
// если находим в xml элемент <item> начинаем обрабатывать его
if ($reader->localName == 'offer') {
// мы будем формировать массив который будет содержать все дочерние элементы элемента <item>
$offer = array();
while ($reader->read()){
if ($reader->nodeType == XMLReader::ELEMENT) {
$name = strtolower($reader->localName);
while ($reader->moveToNextAttribute()){
// здесь мы получаем атрибуты если они есть
$offer[$name]['__attribs'][$reader->localName] = $reader->value;
}
$reader->read();
if (isset($offer[$name]) && is_array($offer[$name])){
$offer[$name]['value'] = $reader->value;
}else
$offer[$name] = $reader->value;
}
if ($reader->nodeType == XMLReader::END_ELEMENT && $reader->localName == 'offer')
break;
}
}
}
}
структура в xml у меня такая:
<offers>
<offer id="50275" available="false" cbid="47067.470000">
<url>http://ufa.terminal.ru/product/telefon-samsung-s5830i-galaxy-ace-pure-white-50275/%3Fdcid%3D2136%26r1%3Dyandex%26r2%3D%26utm_source%3Dyandexmarket%26utm_medium%3Dcpc%26utm_campaig n%3Dtelefony-GSM%257Cster%26utm_term%3Dtelefon-samsung-s5830i-galaxy-ace-pure-white-50275%26utm_content%3D50275</url>
<price>3676.00</price>
<currencyId>RUR</currencyId>
<categoryId>19</categoryId>
<picture>http://terminal.ru/catalog//448//4485750f-539b-11e0-b900-0026188b0a94.JPEG</picture>
<store>false</store>
<pickup>false</pickup>
<delivery>true</delivery>
<local_delivery_cost>1770</local_delivery_cost>
<name>Телефон Samsung S5830i Galaxy Ace Pure White </name>
<vendor>Samsung</vendor>
<description>Телефон Samsung S5830i Galaxy Ace Pure White</description>
<manufacturer_warranty>true</manufacturer_warranty>
</offer>
и ещё много <offer>
Подскажите, пожалуйста, как мне дальше сделать сортировку моего xml по значению цены в любом порядке (убывание или возрастание)