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 :

[Tableaux] arsort et extraction de la plus grande valeur


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut [Tableaux] arsort et extraction de la plus grande valeur
    Bonjour tout le monde,

    Voilà mon petit code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $p_stat = array(138, 254, 381, 652, 896, 720, 140, 556, 663, 331, 407, 768);
    arsort($p_stat);
    Avec ce code je veux afficher juste la grande valeur de ce tableau.

    J ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($p_stat as $key => $val) {
       echo "$key = $val\n";
    }
    mais ça m'a donné que la clé de la grande valeur est 4, alors comment, sans faire le foreach, je peux recuperer la grande valeur de ce tableau avec sa clé ??? cad apres avoir ecrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $p_stat = array(138, 254, 381, 652, 896, 720, 140, 556, 663, 331, 407, 768);
    arsort($p_stat);
    je mets juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "la grande valeur est : ".XXXXX;
    J espere etre claire dans ma question. Merci pour votre aide

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    tu peux utiliser la fonction max() tout simplement

  3. #3
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    et si j ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $p_TableauValeurs = array ("barre" => array ( 
    array(1098, 202, 350, 230, 150),
    array(10, 230, 600, 50, 200),
    array(60, 180, 480, 100, 330)))
    comment je vais faire pour avoir le max de ces 3 array ??

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Si tu veux le nombre maximum parmis tous les nombres des tableaux et qu'en plus chaque tableau peut contenir un nombre indéfini de sous tableaux il va te falloir une fonction récursive que tu vas appliquer sur chaque élément du tableau et qui va s'appeler elle meme jusqu'à tomber sur des nombres. Elle se chargera de mémoriser le max au fur et a mesure du parcours.

  5. #5
    Membre habitué Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Points : 130
    Points
    130
    Par défaut
    J ai bricolé avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    usort($tab_Valeurs, array ("ma_classe", "m_comparaison1"));
    foreach($tab_Valeurs as $cle=>$valeur) {
    for($i=0; $i<sizeof($valeur); $i++)
    $tab_Valeur[] = $valeur[$i];
    }
    arsort($tab_Valeur);
    foreach($tab_Valeur as $cle=>$valeur) {
    $tableau_Valeurs[] = ($valeur/$this->nombre_ADiviser);
    }
    $max_valeur = $tableau_Valeurs[0]
    avec des fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function m_comparaison2($p_valeur1,$p_valeur2) 
    	{
        	if ($p_valeur1[2] == $p_valeur2[2])
            	return 0;
        	return ($p_valeur1[2] > $p_valeur2[2]) ? -1 : 1;
    	}
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function m_comparaison1($p_valeur1,$p_valeur2)
    	{
    		if ($p_valeur1[1] == $p_valeur2[1])
    			return $this->m_comparaison2($p_valeur1,$p_valeur2);
    		return ($p_valeur1[1] > $p_valeur2[1]) ? -1 : 1;
    	}
    Si personne ne trouve d inconvenient pour mon code, je vais mettre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2009, 07h48
  2. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 17h39
  3. vba-Excel-Plus grande valeur d'une colonne
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 08/08/2006, 10h50
  4. [XPath]fonction récupérer plus grand valeur d'un attribut ?
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/05/2006, 14h27
  5. [Debutante] trouver les 5 plus grandes valeurs
    Par Sarrus dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/07/2005, 15h39

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