Atradau pats galiausiai rūšiavimo būdą su php - funkcija xsort, naudojanti
array_multisort. Tik tam dar reikėjo pasiversti data i kitoki datos formata,
kad išeitų rūšiuoti
function xsort(&$nodes, $child_name, $order=SORT_ASC)
{
$sort_proxy = array();
foreach ($nodes as $k => $node) {
$sort_proxy[$k] = (string) $node->$child_name;
}
array_multisort($sort_proxy, $order, $nodes);
}
$xml = simplexml_load_file("koncertai.xml");
$nodes = $xml->xpath('concerts/concert');
foreach ($nodes as $concert){
$formatas=date('Y-m-d', strtotime($concert->date));
$concert->date=$formatas;
}
xsort($nodes, 'time', SORT_ASC);
xsort($nodes, 'date', SORT_ASC);
"jurgis" <jurgis@burda.lt> parašė naujienų
news:jbn0jo$hv2$1@trimpas.omnitel.net...
> Sveiki,
>
> reikia nuskaityti xml faila ir atvaizduoti koncertus, ta sekmingai
> pavyksta padaryti
>
> $xml = simplexml_load_file("koncertai.xml");
> foreach ($xml->concerts->concert as $concert){
> echo($concert->name);
> }
>
> Problema atsiranda jei bandau isrusiuoti pagal data. funkcija sort veiktu,
> jei duomenys butu tiesiog eilute skaiciu ar zodziu,
> o kaip rusiuoti visa objekta, kad koncertai issideliotu pagal
> $concert->date?
>
> Bandziau naudoti smarty
>
> {foreach from=$xml->concerts->concert item="concert" key=id}
> {$concert->name}
> {/foreach}
>
> veikia, o pridejus "sortby" nebegaunu nei vieno koncerto:
>
> {foreach from=$xml->concerts->concert|sortby"date" item="concert"}
> {$concert->name}
> {/foreach}
>
>