Bonjour,
j'ai un menu qui vient d'un document xml :
que je retranscris en php en menu :
Seul soucis est que j'ai besoin de trier mes catégories / sous catégories et sous/sous catégories par order d'"order". J'ai beau faire le tour des fonction asort usort , etc. de php, je n'arrive pas à me trouver le bout de code pour retrier mes catégories simplement.
Existerait-il un moyen simple de trier directement par biais de la variable "order" de mes data->$items?
j'ai un menu qui vient d'un document xml :
<?xml version="1.0" encoding="iso-8859-1"?>
<categories>
<category>
<slug>Categorie A</slug>
<name>Categorie A</name>
<order>1</order>
<catlevel1>
<slug>Categorie A1</slug>
<name>Categorie A1</name>
<order>3</order>
<catlevel2>
<slug>Categorie A1 A</slug>
<name>Categorie A1 A</name>
<order>1</order>
</catlevel2>
<catlevel2>
<slug>Categorie A1 B</slug>
<name>Categorie A1 B</name>
<order>2</order>
</catlevel2>
</catlevel1>
<catlevel1>
<slug>Categorie A2</slug>
<name>Categorie A2</name>
<order>5</order>
<catlevel2>
<slug>Categorie A2 A</slug>
<name>Categorie A2 A</name>
<order>1</order>
</catlevel2>
</catlevel1>
<category>
<slug>Categorie B</slug>
<name>Categorie B</name>
<order>2</order>
</category>
<category>
<slug>Categorie C</slug>
<name>Categorie C</name>
<order>4</order>
<catlevel1>
<slug>Categorie C1</slug>
<name>Categorie C1</name>
<order>2</order>
</catlevel1>
<catlevel1>
<slug>Categorie C2</slug>
<name>Categorie C2</name>
<order>1</order>
</catlevel1>
</category>
<category>
<slug>Categorie D</slug>
<name>Categorie D</name>
<order>5</order>
</category>
<category>
<slug>Categorie E</slug>
<name>Categorie E</name>
<order>6</order>
</category>
</categories>
que je retranscris en php en menu :
<?php
$menu .='<ul id="menu">';
$string=file_get_contents("myfile.xml");
$data = new SimpleXMLElement($string);
foreach ($data->category as $item){
$menu .= '<li class="menuderoulant"><a href="index.php/component/virtuemart/'.$item->slug.'">'.$item->name;
$menu .= '<ul class="menuderoulant2">';
foreach ($item->catlevel1 as $item2){
$menu .= '<li><a href="index.php/component/virtuemart/'.$item->slug.'/'.$item2->slug.'"> '.$item2->name.'</a>';
$menu .= '<ul class="menuderoulant3">';
foreach ($item2->catlevel2 as $item3){
$menu .= '<li><a href="index.php/component/virtuemart/'.$item->slug.'/'.$item2->slug.'/'.$item3->slug.'"> '.$item3->name.'</a></li>';
}
$menu .= '</ul></li>';
}
$menu .= '</ul></li>';
}
$menu .= '</ul>';
echo $menu;
?>
Seul soucis est que j'ai besoin de trier mes catégories / sous catégories et sous/sous catégories par order d'"order". J'ai beau faire le tour des fonction asort usort , etc. de php, je n'arrive pas à me trouver le bout de code pour retrier mes catégories simplement.
Existerait-il un moyen simple de trier directement par biais de la variable "order" de mes data->$items?