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] [débutant] intervertir 2 valeurs dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 82
    Par défaut [Tableaux] [débutant] intervertir 2 valeurs dans un tableau
    Bonjour à tous !

    J'effectue un tri particulier dans un tableau et j'ai besoin d'intervertir 2 valeurs de ce tableau lorsque la condition est rencontrée. Mais bizarrement, j'ai pas trouvé de fonction qui fasse ça... Et comme les focntion de tri (type *sort() ) ne me convienne pas, je suis bien bloqué !

    Merci de votre aide

  2. #2
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $varEchange = $tab[$i];
    $tab[$i] = $tab[$j];
    $tab[$j] = $varEchange;

  3. #3
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Ah une bonne vieille fonction swap !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function swap($tontableau,$indice1,$indice2)
    {
       $tmp = $tontableau[$indice1];
       $tontableau[$indice1] = $tontableau[$indice2];
       $tontableau[$indice2] = $tmp;
     
     return $tontableau;  
     
    }
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Tu peux aussi la jouer sportif, sans variable d'échange (si pas de risque de dépassement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tab[$i] += $tab[$j];
    $tab[$j] = $tab[$i] - $tab[$j];
    $tab[$i] -= $tab[$j];

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 82
    Par défaut
    Merci, en effet, c'était tout bête...

    Autre chose que je cherchais également :

    faire remonter une valeur dans le tableau, l'insertion repoussant ainsi les éléments du tableau.

    ex : remonter l'élément de l'indice 25 à l'indice 2. L'ancien élément d'indice 2 devient d'indice 3 et ainsi de suite !

  6. #6
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function remonter($indice1, $indice2, $tab) {
      if ($indice1 > $indice2) {
        $tmp = $indice1;
        $indice1 = $indice2;
        $indice2 = $tmp;
      }
      for ($i = $indice1; $i < $indice2; $i -= 1) {
        return swap($tab,$i,$indice2);
      }
    }

  7. #7
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Citation Envoyé par Eusebius
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function remonter($indice1, $indice2, $tab) {
      if ($indice1 > $indice2) {
        $tmp = $indice1;
        $indice1 = $indice2;
        $indice2 = $tmp;
      }
      for ($i = $indice1; $i < $indice2; $i -= 1) {
        return swap($tab,$i,$indice2);
      }
    }

    Oh ya un copyright sur la fonction swap hein
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/01/2007, 20h04
  2. Réponses: 6
    Dernier message: 26/12/2006, 17h01
  3. [Tableaux] Problème de valeur dans un tableau (array)
    Par Flushovsky dans le forum Langage
    Réponses: 15
    Dernier message: 24/03/2006, 13h56
  4. [Tableaux] Extraction de valeur dans un tableau
    Par pirouette_07 dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2005, 17h54
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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