[RESOLU] Array et tri (array_multisort)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Array et tri (array_multisort)

Re: Array et tri (array_multisort)

par Invité » 10 déc. 2013, 02:34

Bon, à force de me triturer le cerveau j'ai trouvé !
C'est tout bête mais dans ma BDD les nombres en milliers sont stockés sous la forme 1 000 avec un espace entre le chiffre des milliers et celui des centaines... (pas de ma faute, la BDD et constituée comme çà et mon appli ne faire que lire les données)

Re: Array et tri (array_multisort)

par distrikt26 » 09 déc. 2013, 21:46

Je construis ce tableau au fur et à mesure puisque j'ai plusieurs fonctions qui vont me générer les valeurs (une qui calcule le CA par client, une le nombre de passage etc...)
A la base c'est une base access (pas le choix, je suis tributaire de çà).

Re: Array et tri (array_multisort)

par xTG » 09 déc. 2013, 21:28

Juste comme ça, tes données ne viendraient pas d'une requête SQL ?

Array et tri (array_multisort)

par distrikt26 » 09 déc. 2013, 20:22

Bonjour à tous,

Je souhaite trier un tableau du plus petit au plus grand ou inversement. J'ai lu beaucoup de choses, j'ai essayé array_multisort mais je n'arrive pas à obtenir le résultat escompté.

Voici le début de mon array (qui comporte entre 5 et 30 résultats suivant les résultats)

Code : Tout sélectionner

array (size=42) 0 => array (size=8) 'CodeClient' => string 'C016A' (length=5) 'Nom' => string 'PaulD' (length=16) 'FacEMail' => string '[email protected]' (length=26) 'DateCarteFidelite' => string '06/05/2011' (length=10) 'LastVente' => string '06/05/2011' (length=10) 'TotalPassage' => string '1' (length=1) 'TotalCA' => string '80,15' (length=5) 'TotalRemise' => string '0,00' (length=4) 1 => array (size=8) 'CodeClient' => string 'C0162' (length=5) 'Nom' => string 'ma-ma' (length=10) 'FacEMail' => string '[email protected]' (length=21) 'DateCarteFidelite' => string '04/05/2011' (length=10) 'LastVente' => string '19/05/2011' (length=10) 'TotalPassage' => string '1' (length=1) 'TotalCA' => string '31,20' (length=5) 'TotalRemise' => string '0,00' (length=4) 2 => array (size=8) 'CodeClient' => string 'C016F' (length=5) 'Nom' => string 'Pierre' (length=10) 'FacEMail' => string '[email protected]' (length=21) 'DateCarteFidelite' => string '14/05/2011' (length=10) 'LastVente' => string '14/05/2011' (length=10) 'TotalPassage' => string '1' (length=1) 'TotalCA' => string '164,00' (length=6) 'TotalRemise' => string '0,00' (length=4)
je souhaiterais trier par TotalCA. j'ai essayé
	foreach ($ListeClient as $key => $row) {
		$TotalCA[$key]  = $row['TotalCA'];
		$TotalRemise[$key] = $row['TotalRemise'];
	}
puis
array_multisort($TotalCA, SORT_NUMERIC, SORT_ASC, $TotalRemise, SORT_ASC, $ListeClient);
le probleme s'effectue sur les milliers puis sur les dizaines puis les centaines. Le résultat obtenu est : 1650 > 1880 > 20 > 135 > 283 > 450... Bref il trie pas dans le bon ordre. Je ne vois pas trop comment faire. Merci