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] Simplification de boucle


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut [Tableaux] Simplification de boucle
    Bonjour, voila je développe un système de recherche php/mysql, et je me retrouve confronte a ce probleme:
    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
     
    $pres=0;
    $rep = array();
    while($cpf = mysql_fetch_array($res)) {
    	similar_text(SuppAccents(str_replace('-',' ',strtolower($cpf['champ']))),SuppAccents(strtolower($cher)),$p);
    	if($p > $pres) {
    		$pres=$p;
    	}
    	array_push ($rep, $cpf);
    }
     
    while($cpf = array_shift($rep)) { ?>
    	<div>
    		<?php
    			similar_text(SuppAccents(str_replace('-',' ',strtolower($cpf['champ']))),SuppAccents(strtolower($cher)),$p);
    			if($p >= $pres-$tol) {
    				echo "Cette reponse est proche a " . $p . "%<br/>";
    			}	
    		?>		
    	</div>
    <?php
    }
    Comme vous pouvez le voir j'ai deux boucles presque identiques.
    C'est dommage, mais la première boucle sert a déterminer le pourcentage le plus haut et on l'utilise dans la deuxième boucle pour étendre la plage de résultats.
    Et donc mon probleme c'est comment simplifier en une boucle :s
    Merci

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Pourquoi ne fais-tu pas bêtement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $pres=0;
    $rep = array();
    while($cpf = mysql_fetch_array($res)) {
    	echo '<div>';
    	similar_text(SuppAccents(str_replace('-',' ',strtolower($cpf['champ']))),SuppAccents(strtolower($cher)),$p);
    	if($p > $pres) {
    		$pres=$p;
    	}
    	if($p >= $pres-$tol) {
    		echo 'Cette reponse est proche a ' . $p . '%<br />';
    	}
    	echo '</div>';
    	array_push ($rep, $cpf);
    }

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Oui j'y avai pas pensé!! Merci

    Mais ca ne marche pas de la meme facon que le code avec les deux boucles

  4. #4
    Membre confirmé Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Par défaut
    C'est normal que le comportement ne soit pas le même avec la méthode des if dans le même while, car ton deuxième while itère sur des données mise en place par le premier while (array_push ($rep, $cpf)

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Oui je sait bien... Donc aucune optimisation possible ?

Discussions similaires

  1. [Tableaux] Probleme de boucle for
    Par keumlebarbare dans le forum Langage
    Réponses: 12
    Dernier message: 20/09/2006, 15h29
  2. [Tableaux] Problème de boucle et d'affichage
    Par Frenken dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2006, 19h17
  3. [Tableaux] Probléme de boucle !!
    Par Shandler dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2006, 19h16
  4. Réponses: 3
    Dernier message: 11/01/2006, 18h44
  5. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 19h39

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