Bonjour.
J'ai un problème pour afficher tout les éléments d'un tableau quand le nombre d'éléments du tableau est inférieur à 5.
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 function toString(){ $objectString=''; $items=$this->children; $bufferLimit=(count($items)==0)?1:$this->getBufferLimit(); /* echo "<pre>"; print_r($this->recurseMenu($items,$bufferLimit)); echo "</pre>"; */ do { $bufferLimit-=1; $objectString=$this->recurseMenu($items,$bufferLimit); } while(strlen($objectString>160)); $this->index=$bufferLimit; return $objectString; } function getBufferLimit() { $len = count($this->children); $margin = $len-$this->index; if($margin<5) return $this->index+$margin; else return $this->index+5; //Permet de définir le Nombre de Menu à afficher au niveau de l'index "/ussd/receiver.php" dont le Menu est "/ussd/MyTree.php". } function recurseMenu($items,$bufferLimit) { $objectString="<strong>". $this->getTitle() . "</strong>" . PHP_EOL; $lastMenu=false; // var_dump($items); //DEBUG "items" if(count($items)>0) { for ($i = $this->index; $i <= $bufferLimit; $i++) { if ($items[$i]) { $item = $items[$i]; echo "<pre>"; print_r($i); echo "</pre>"; echo "<pre>"; print_r($item); echo "</pre>"; $num = $i + 1; // get node by name $userSessions = $_SESSION['userSessions']; $currUserSession = $userSessions[$this->address]; $node = $currUserSession->getNode($item); $title = $node->getTitle(); $objectString .= PHP_EOL . $num . '. ' . $title; } }
Le problème c'est que quand $margin<5 dans la fonction getBufferLimit, le debug de la variable $item n'affiche que le dernier élément du tableau $items.
Pourquoi donc ce bug d'affichage du dernier élément UNIQUEMENT lorsque les items sont inférieurs à 5 ???
J'ai tourné dans tous les sens sans vraiment comprendre ce qui créé ce Bug.
Veuillez m'aider s'il vous plaît à récupérer tous les items même quand le nombre d'items est inférieurs à 5.
Partager