IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer le dernier élément d'un Array quand les éléments sont inférieurs à 5


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut Récupérer le dernier élément d'un Array quand les éléments sont inférieurs à 5
    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.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 104
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 104
    Points : 8 224
    Points
    8 224
    Billets dans le blog
    17
    Par défaut
    Ton code n'est pas testable, en ce qui me concerne c'est difficile de t'aider.

    Et encore une fois, tu devrais réfléchir à simplifier ta structure et ton script.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 452
    Points : 66
    Points
    66
    Par défaut
    J'ai mis le projet ici: PHPProjet.zip.
    Et la vidéo de l'erreur que je rencontre est ici:
    .

    Je précise que les fonctions toString, getBufferLimit, recurseMenu sont définies dans le fichier ussd\ussdmenu-server-php\UssdNode.php.

    J'ai vraiment besoin de votre aide.
    Merci de m'aider.

Discussions similaires

  1. Récupérer le dernier élément après un motif
    Par djbad dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 02/08/2018, 23h59
  2. récupérer le dernier élément dans une liste
    Par student student dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 03/05/2018, 16h29
  3. [RegEx] Récupérer le dernier élément entre slashes
    Par pp_le_moko dans le forum Langage
    Réponses: 8
    Dernier message: 09/11/2009, 13h01
  4. Quand les ressources sont elles associées ?
    Par poulette3000 dans le forum Windows
    Réponses: 1
    Dernier message: 25/08/2006, 22h57
  5. Réponses: 10
    Dernier message: 09/06/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo