Tri PHP
Wyti
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Tri PHP
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Votre colis est retenu au centre de tri - Accueil - Arnaque
3 réponses
Salut,
une solution:
@lain
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
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.
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.
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
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
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
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