Tri PHP

Bonjour,
Je suis à la recherche d'un moyen pour comparer 2 chaines (parmi une 20aine contenues dans un tableau) et de savoir laquelle est la première dans l'ordre alphabétique.
à cause de certaines circonstances (par exemple certaines chaines même une fois triés doivent toujours se suivre) je ne peux pas utiliser les fonctions Sort() de php.

Exemple de ce que je voudrais :
if $chaine[1] est avant $chaine[2]
instructions
......

merci d'avance.
Configuration: Windows XP
Firefox 3.0.1

3 réponses

  1. Salut,

    une solution:

    <?php
    $chaine1="blabla";
    $chaine2="tototiti";
    foreach($chaine as $cle=>$value){
    	if($value==$chaine1) $pos_chaine1=$cle;
    	if($value==$chaine2) $pos_chaine1=$cle;
    	
    }
    if($pos_chaine1 < $pos_chaine2){
    //la suite
    
    }
    ?>


    @lain
    0
    1. Euh merci mais comme je te l'ai dit mon tableau contient environ une 20aine de chaines, de plus il est impossible de connaitre dans quel ordre elles sont écrites (varie entre 2 générations de la page)
      d'ailleurs il ne contiendra pas tout le temps 20 chaines, ce nombre doit pouvoir varier, et ta méthode n'est malheureusement pas assez extensible.
      0
      1. Comment ça elle n'est pas extensible ?

        si $chaine est l'array qui contient toutes tes chaines

        on recherche bien dans tout l'array l'ordre ou les deux sont trouvees
        0
    2. Oui bien sûr ta boucle est juste le problème c'est ton $value=$chaine2
      imaginons que j'aie 260 chaines alors il me faudrait 260 if dans la boucle ce qui est très moyen niveau extensibilité et pire encore je ne dois pas pouvoir prédire la nombre de chaines contenues dans ce tableau donc il me faudrait plus un if qui compare 2 chaines et qui puisse extraire la chaine avant dans l'ordre alphanumérique
      0
      1. Alors tu n'as rien compris au principe:

        par la boucle foreach on parcours TOUT l'array $chaine même si il y en a 200

        pour chaque passage de la boucle on compare la valeur du pas de l'array qui est $value à la chaine a trouver

        foreach($chaine as $cle=>$value)

        veut dire pour chaque entree de l'array mettre la cle dans $cle et la valeur dans $value

        et ensuite on travaille dessus

        @lain
        0