J'ai les deux classes suivantes et donc les deux fichiers suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <?php class Item { private $nom; private $code; private $visible; private $position; function __tostring() { return "Cette classe permet de définir et manipuler un item de menu.<br/>"; } function __construct($nom, $code, $visible, $position) { $this->nom = $nom; $this->code = $code; $this->visible = $visible; $this->position = $position; } function getNom() { return $this->nom; } function setNom($nom) { $this->nom = $nom; } function getCode() { return $this->code; } function setCode($code) { $this->code=$code; } function getVisible() { return $this->visible; } function setVisible($visible) { $this->visible=$visible; } function getPosition() { return $this->position; } function setPosition($position) { $this->position=$position; } } ?>Je cherche à trier les items en fonction de leurs positions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 <?php include('item.inc.php5'); class Menu { private $items; function __tostring() { return "Cette classe permet de définir et manipuler un menu.<br/>"; } function __construct() { /*Dans le futur les items seront le resultat de requetes dans une BD MySQL*/ $item3 = new Item('item3','#FF6633',0,3); $this->items[count($this->items)] = $item3 ; $item4 = new Item('item4','#3366FF',0,4); $this->items[count($this->items)] = $item4 ; $item5 = new Item('item5','#FF6633',0,5); $this->items[count($this->items)] = $item5 ; $item2 = new Item('item2','#3366FF',0,2); $this->items[count($this->items)] = $item2 ; $item1 = new Item('item1','#FF6633',0,1); $this->items[count($this->items)] = $item1 ; $item6 = new Item('item6','#FF6633',0,3); $this->items[count($this->items)] = $item6 ; } function getItems() { return $this->items; } function setItems($items) { $this->items = $items; } function sort() { /*Fonction qui tri les items selon la position*/ } function display() {//Affichage bateau $retour=""; for($i=0;$i<count($this->items);$i++){ $retour = $retour ." | ". $this->items[$i]->getNom(); } return $retour; } function display1() {//Affichage après tri $retour=""; $this->sort(); for($i=0;$i<count($this->items);$i++){ $retour = $retour ." | ". $this->items[$i]->getNom(); } return $retour; } } ?>
J'ai donc un object Menu représenté comme ceci :
+-----+-----+-----+-----+-----+-----+
|item3|item4 |item5|item2|item1|item6| <-nom des items
|3......|4......|5......|2.....|1......|3......| <-position des items
+-----+-----+-----+-----+-----+-----+
Je veux après le tri l'object Menu soit comme ceci :
+-----+-----+-----+-----+-----+-----+
|item1|item2 |item3|item6|item4|item5|
|1......|2......|3......|3.....|4......|5......|
+-----+-----+-----+-----+-----+-----+
On place les positions les plus petites en 1er et quand on a deux positions identique on a la politique du 1er arriver 1er servi.
J'espère avoir bien exprimé mon problème.
Partager