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] tri tableau avec date


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut [Tableaux] tri tableau avec date
    bonjour,

    Voilà mon problème qui a l'air simple, mais pour petit débutant en php c'est une prise de tete !!!

    J'ai un tableau $tab avec 4 colonnes .
    la 1 ère colonne contient des dates $tab[0]
    la 2 émé colonne contient des noms $tab[1]
    la 3 ème colonne contien des prénoms $tab[2]
    la 4 ème colonne contient des adresses $tab[3]

    ex :

    24/09/2006 nom1 prenom1 adresse1
    20/09/2006 nom2 prenom2 adresse2
    12/09/2006 nom3 prenom3 adresse3
    15/09/2006 nom4 prenom4 adresse4
    10/09/2006 nom5 prenom5 adresse5


    <<<
    lorsque je passe la fonction sort($tab[0]) le résultat et le suivant :

    10/09/2006 nom1 prenom1 adresse1
    12/09/2006 nom2 prenom2 adresse2
    15/09/2006 nom3 prenom3 adresse3
    20/09/2006 nom4 prenom4 adresse4
    24/09/2006 nom5 prenom5 adresse5

    => il ne ma trié que la 1 ère colonne tab[0] ...
    >>>


    <<<
    lorsque je passe la fonction sort($tab) le résultat et le suivant :

    24/09/2006 nom1 prenom1 adresse1
    20/09/2006 nom2 prenom2 adresse2
    12/09/2006 nom3 prenom3 adresse3
    15/09/2006 nom4 prenom4 adresse4
    10/09/2006 nom5 prenom5 adresse5

    => aucun tri ...
    >>>

    Pouvez-vous m'aider ?
    Merci

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    function compare($a, $b) {
       return strnatcmp($a[0], $b[0]);
    }
     
    usort($tab, 'compare');
     
    ?>
    http://php.net/usort

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Bonjour,

    J'ai réussit a faire ce que je voulais faire ( je l'ai fait sur 2 colonnes), mais le script est un peut long ...
    Le problème c'est que si je rajoute des colonnes, cela me rajoutera encore des lignes de codes...
    Je suis sur qu'il y a beaucoup plus , quequ'un peut 'il m'aider ou me mettre sur la voie ?
    Merci pour votre aide

    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
    55
    56
     
    <?
    $tab =array();
    $i = 0;
    $j = 0;
     
    $tab[0][0] = 3; $tab[0][1] = "C";
    $tab[1][0] = 1; $tab[1][1]  = "A";
    $tab[2][0] = 2; $tab[2][1] = "B";
    $tab[3][0] = 5; $tab[3][1] = "E";
    $tab[4][0] = 4; $tab[4][1] = "D";
     
    print_r($tab) ;
    echo "<br>";
     
    for( $i = 0 ,$total = count($tab) ; $i < $total;  $i++)
    	{
    	echo $tab[$i][0];  	
    	echo "<br>";
    	}
     
    for( $i = 0 ,$total = count($tab) ; $i < $total;  $i++)
    	{
    	 for ( $j = $i+1 ; $j < $total;  $j++)
    		{
    		if ( $tab[$i][0] < $tab[$j][0] )	
    			{
    			//PERMUTATION
     
    		$tempi = $tab[$i][0] ;
    		$tempi1 = $tab[$i][1];
     
    		$tempj = $tab[$j][0] ;
    		$tempj1 = $tab[$j][1] ;
     
     
    		$tab[$i][0] = $tempj;
    		$tab[$i][1] = $tempj1;
     
    		$tab[$j][0] = $tempi;
    		$tab[$j][1] = $tempi1;
     
    			}
    				}
    	}	
     
    print_r($tab) ;
     
    echo $tab[0][0] ; echo "<br>";echo $tab[0][1] ;echo "<br>";
    echo $tab[1][0] ; echo "<br>";echo $tab[1][1] ;echo "<br>";
    echo $tab[2][0] ; echo "<br>";echo $tab[2][1];echo "<br>";
    echo $tab[3][0] ; echo "<br>";echo $tab[3][1];echo "<br>";
    echo $tab[4][0] ; echo "<br>";echo $tab[4][1];echo "<br>";
     
     
    ?>
    RESULTAT :
    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
     
    Array ( [0] => Array ( [0] => 3 [1] => C ) [1] => Array ( [0] => 1 [1] => A ) [2] => Array ( [0] => 2 [1] => B ) [3] => Array ( [0] => 5 [1] => E ) [4] => Array ( [0] => 4 [1] => D ) ) 
    3
    1
    2
    5
    4
    Array ( [0] => Array ( [0] => 5 [1] => E ) [1] => Array ( [0] => 4 [1] => D ) [2] => Array ( [0] => 3 [1] => C ) [3] => Array ( [0] => 2 [1] => B ) [4] => Array ( [0] => 1 [1] => A ) ) 5
    E
    4
    D
    3
    C
    2
    B
    1
    A

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Merci d'utiliser les balises [code]

    Ma proposition ne te plait pas ?

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Citation Envoyé par Mr N.
    Merci d'utiliser les balises [code]

    Ma proposition ne te plait pas ?
    Au contraire je suis content que l'on me donne une solution !!!
    En fait je suis débutant en php et programation, et j'ai pu a réussit à comprendre comment implémenter ta solution ! Et pourtant je suis sur que ca doit etre tres simple ...?

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Ben un simple copier-coller devrait suffir

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

Discussions similaires

  1. [Tableaux] tri tableau avec fonction
    Par ascito dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2008, 15h21
  2. [Tableaux] tri tableau php
    Par billebo dans le forum Langage
    Réponses: 16
    Dernier message: 09/03/2007, 14h40
  3. [Tableaux] Remplir tableau avec ordre defini
    Par nicerico dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2006, 11h28
  4. [Tableaux] Tri tableau avec underscore et chiffres
    Par __fabrice dans le forum Langage
    Réponses: 4
    Dernier message: 18/10/2006, 18h05
  5. [Tableaux] Tri tableau
    Par licorne dans le forum Langage
    Réponses: 3
    Dernier message: 20/03/2006, 13h14

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