FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » tri d'un array par intermitence
 

tri d'un array par intermitence

Il y a 152 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : tri d'un array par intermitence
 
Plus d'informations

Salut !
Voilà ma question :
Est-il possible de trier un array par intermitence. Je veux dire par la que lorsque l'on récupère des données dans une DB, on obtient souvent un mélange hétérogène de données dans l'array (surtout lorsqu'il s'agit de données d'inscription d'utilisateurs). Par exemple : A,A,B,A,A,A,B,B,A,B,B,B.
et j'aimerai savoir s'il est possible de le classer par intermitence afin d'obtenir un mélange homogène. Par exemple : A,B,A,B,A,B,A,B,A,B,A,B.
Merci de m'aider !!


Message édité par tmor6vite le 07-06-2006 à 00:28:16

Profil : Pointeur
Plus d'informations

explique un peu mieux ton problème ...
 
et sinon, tu n'as qu'a mieux écrire ta requete :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Lorsque l'on récupère des données d'une base de donnée, on récupère généralement des données mélangées ou bien ordonnées par ordre alphabétique dans un array, celà depend de la requête SQL utilisée (par exemple : A,A,A,A,A,A,B,B,B,B,B,B,B)
J'aimerai savoir si vous connaissez un moyen de les ranger par intermitence (par exemple : A,B,A,B,A,B,A,B,A,B,A,B,A)
J'ai déjà regardé à la fonction sort() et tous ses dérivés mais je ne trouve rien qui correspond à ce que je veux faire.
S'il n'est pas possible de faire ca, existe il une requête SQL spécifique permettant ceci ?
Merci de votre aide !!

Plus d'informations

Non aucune, il te faut retravailler ton tableau par toi même. il existe tout de même une fonction qui permet de "mélanger" un tableau >> Voir ici shuffle << peut être que ca te donnera une autre vision de ce que tu ve faire.

zeb
Profil : Modérateur libre
Plus d'informations

Non, ça n'existe pas.
 
Par contre tu peux faire ça :
A,A,B,A,A,A,B,B,A,B,B,B
--> tri -->
A,A,A,A,A,A,B,B,B,B,B,B
--> considérer deux listes -->  
A,A,A,A,A,A
B,B,B,B,B,B
--> prendre le premier de chaque puis le deuxieme, etc -->
A,B,A,B,A,B,A,B,A,B,A
 
Mais il faut l'implémenter toi-même

Plus d'informations

Le problème c'est que je ne connais pas le nombre de données qui peut être différent à chaque fois que j'utilise de scrpit ...

zeb
Profil : Modérateur libre
Plus d'informations

Code :
  1. select count ( CHAMP ) from TABLE group by CHAMP

Plus d'informations

Ta fonction ne marche pas ici orni car je dois garder les clés et celle-ci les effacent.
 
Je vais donner un exemple pour que vous compreniez mieux :
J'ai dans une DB les données d'utilisateurs (nom prénom sexe).
Il y a 2 valeurs posible pour sexe ^^ et j'aimerai trouver un moyen pour récupérer TOUTES les données dans un array contenant la totalité de la DB de facons à avoir un mélange homogène d'Hommes et de Femmes tout en gardant les clefs correspondant aux champs de la DB ainsi que les noms et prénoms des utilisateurs.
 
c'est a dire par exemple apres le tri :
- Emilie Dupont F
- Jean Batiste M
- Sophie Roger F
- Edouard Renaud M
( Je suis désolé si l'un de ces noms est le votre mais c'est le pûr hazard ^^ )
 
Cependant les requetes SQL permettent de classer uniquement par ordre alphabétique ces données et si je récupère la totalité de la DB avec tri, j'aurai les Femmes au début et les Hommes à la fin. Par contre si je n'utilise pas de tri j'aurai un array classé en fonction de l'id de chaque personne (par ordre d'enregistrement sur mon site).
A moins que vous ne connaissiez une requete permettant ceci, j'ai donc décidé de créer 2 array (un pour les Hommes & un pour les Femmes) et de les mélanger avec une des fonctions sort, array_multisort, etc... mais comme j'utilise une boucle while pour traiter les données de l'array ligne par ligne, je ne peux pas utiliser ce genre de fonctions. j'en arrive donc à une troisième solution qui aurait été d'appliquer plusieurs paramètres à la fonction while (ou for) afin de pouvoir traiter les données de 2 array simultanément dans une unique boucle while (ou for).
Donc si vous avez une solution pour ces 3 problemes qui étaient censés être des solutions ^^ Prévenez moi :P
Merci pour votre aide.


Message édité par tmor6vite le 07-06-2006 à 20:43:03
zeb
Profil : Modérateur libre
Plus d'informations

Ben oui, c'est facile.
La condition d'arrêt de ta boucle WHILE doit être :

indice < Nombre_De_Mecs ET indice < Nombre_De_Nana


A l'intérieur de la boucle, bien vérifier que indice < Nombre_De_Mecs avant de traiter les Mecs et que indice < Nombre_De_Nanas avant de traiter les Nanas :D

Plus d'informations

C'est bon ça m'a l'air de marcher mais je ne comprend pas à quoi correspond 'indice <' ?
Il faut utiliser le signe égal pour traiter un array (enfin je fais comme ca moi et ça marche ^^)

G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

"<" c'est inférieur :ange:


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » tri d'un array par intermitence
 

Annonces Google
Publicité