Réordonner un tableau php

Résolu
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009 - 3 févr. 2009 à 10:33
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009 - 3 févr. 2009 à 14:14
Bonjour à tous,

me voila avec un probleme assez frustrant. Je voudrais réordonnez un tableau mais je n'y parvient pas.

J'ai un tableau comme ceci : array(1 => "toto", 2 => "titi" , 3=> "tata") et

je voudrais le récupérer comme ceci : array(1=> "toto", 2=> "tata", 3 => "titi") ...

C'est tout con j'ai l'impression mais je n'y arrive pas ... J'ai regardé dans tous les sens avec les array_intersect (key, assoc et tous le tralala mais en vaint :S)

Please help me ...

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
3 févr. 2009 à 12:27
Salut,

Pour commencer, faire un tableau associatif pour lui mettre de telles clés est totalement inutile et ne peux que nuire a la compréhension de ton code.
Ceci :
array(1 => "toto", 2 => "titi" , 3=> "tata");
devrait être remplacer par celà :
array('toto', 'titi' , 'tata');
La seule différence est que le second tableau est indexé a partir de 0 et non de 1, ce qui est plus logique.

Ensuite, pour trier un tableau de ce genre on va utiliser la fonction sort(). Dans ton cas, vu que le tri dépend du contenu de ta chaîne de caractère, tu devrais utiliser la fonction usort() qui va te permettre de passer en paramètre une fonction qui va effectuer la comparaison entre deux éléments afin de déterminer lequel doit être mis avant l'autre. A toi de coder cette fonction de comparaison en fonction de l'ordre dans lequel tu veux trier ;) Tu peux par exemple isoler le nombre entre parenthése des deux éléments et le comparer.
3
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
3 févr. 2009 à 10:36
Pour etre plus précis il est de la sorte :
array(1 => "toto (2)", 2 => "titi (56)" , 3=> "tata (23)")  chiffre généré par une BD pour de la statistiques

je voudrais le récupérer comme ceci : array(1=> "toto (2)", 2=> "tata (23)", 3 => "titi (56)")

Voila voila
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
3 févr. 2009 à 14:14
Merci pour ta réponse TychoBrahe ...

Si j'ai mis mon tableau comme ceci array(1 => "toto", 2 => "titi" , 3=> "tata");  c'était pour me faciliter la vie sur des intersections avec un tableau d'exemple genre j'avais un autre tableau avec les clé dans le bon ordre ...

Mais ta réponse me satisfait très bien ... je vais regarder dans cette optique de usort ... Je pense trouver mon bonheur ...
Merci en tout cas
0
Rejoignez-nous