Как отсортировать xpath используя php - PullRequest
1 голос
/ 28 сентября 2011

Я искал на сайте и не смог найти точный результат для моего вопроса.

Мне нужно поискать в XML-файле и отсортировать выходные данные в порядке убывания даты.

<?xml version="1.0"?>
<entries>
  <entry>
    <date>1299565881</date>
    <action>made an action under category</action>
    <user>Admin</user>
  </entry>
  <entry>
    <date>1299566115</date>
    <action>Item deleted</action>
    <user>Admin</user>
  </entry>
</entries>

вот мой код

<?php

$data = simplexml_load_file($filename);

if($to_date_int>$global_date)
    $op = $data->xpath('/entries/entry[date<='.$to_date_int.']');
else
    $op = $data->xpath('/entries/entry');

Заранее спасибо ..

1 Ответ

1 голос
/ 28 сентября 2011

Поскольку $op будет массивом соответствующих элементов entry, вы можете использовать функции сортировки массива PHP для сортировки по связанным им элементам date.

function sort_entries_by_date($a, $b) {
    return (int) $b->date - (int) $a->date;
}
usort($op, 'sort_entries_by_date');

(Если вы используете PHP 5.3, именованная функция может быть размещена встроенной анонимной функцией.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...