cs_alexscott
Messages postés54Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention10 novembre 2006 7 nov. 2006 à 14:09
ben pour les tris regardent sur php.net ce qui existe : sort, usort, asort, array_multisort, ... tu trouveras forcement ton bonheur. (http://fr.php.net/manual/fr/ref.array.php) quand tu dis intervertir des lignes tu veux dire intervertir leur index je pense tu peux le faire betement en sauvant ce que tu as en [1] dans une var annexe puis tu mets [2] dans [1] et tu mets ce que tu as sauve dans [2] ou tu peux faire joujou avec usort ou array_multisort enfin rien de vraiment excpetionnel si ce n'est de lire la doc :D
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 8 nov. 2006 à 15:17
Salut,
t'as un sort avec un callback, ça peut se faire facilement à partire de ça, j'ai pas la doc en tête, ni mes sources sous la main, mais je l'avais utilisé pour trier les noms des connectés sur IRC en fonction de l'ordre alphabetique et de leur status
In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
Mon site (articles sur la programmation et programmes)
//dans une boucle si on part du principe qu'on fait le meme changement d'ordre pour tous les sous-tableaux
foreach($tab as &$val)
$val = echange(&$val, 0, 2);
//print_r($tab);
//ensuite on souhaite retrier les tableaux en fonction de l'ordre
$mytritype = 'ordre';
foreach($tab as &$val)
usort(&$val, 'mytri');
//print_r($tab);
//ensuite on souhaite retrier les tableaux en fonction de l'ID_PC
$mytritype = 'ID_PC';
foreach($tab as &$val)
usort(&$val, 'mytri');
//print_r($tab);
//evidemment si ton but et de "perdre une dimension il suffit de faire"
$newtab = array();
foreach($tab as &$val)
$newtab = array_merge($newtab, $val);
print_r($newtab);
//Ha et que tu perdes ou non une dimension si tu veux faire un tri a plusieurs cles
//je le fais pour 2 car pour 3 c'est pareil en plus complique
//ca vaut peut-etre le coup d'utiliser array_multisort d'ailleurs dans ce cas la
//enfin c'est chiant array_multisort je te ferais une demo pour trier avec les deux
//memes cles juste apres
//alors pour faire ce dernier tri que je viens de faire avec array_multisort
//il faut extraire les colonnes qui nous interessent
//je fais des SORT_DESC pour qu'on puisse observer le fait que le tri a ete effectue
$key1 = array();
$key2 = array();
//voila sinon je vois pas comment faire pour utiliser le multisort sur ton tableau de depart
//et si je travaille sur le tableau bout par bout c'est parce que ce que si on nomme comme ca
//les differentes composantes de ton tableau
// A( B_0( C_0, C_1, C_2, C_3), B_1(C_0, C_1, C_2, C_3))
//si tu fais directement un tri sur A tu pourras juste changer l'ordre des B et pas leur contenu//a moins de demander le tri des C_x dans la fonction de callback
//ou de faire un truc un peu bizarre avec array_walk_recursive
//voila voila ... sache que j'ai fait tout ca uniquement parce que je me faisais chier mais que
//je n'avais vraiment aucune raison de le faire surtout vu l'entrain que tu as mis a lire la doc//mais je me fais pas de soucis, si tu veux tirer partie des quelques trucs que j'ai montre tu
//vas surement etre oblige de lire la doc qu'on t'a conseille et revient pas nous demander
//ce qu'est une fonction de callback ...
//D'ailleurs dans les fonctions de callback j'utilise des test == et > qui ont pas forcement
//beaucoup de sens pour des chaines de caracteres enfin de toute facon les fonctions de callbacks
//ca sert justement a adapte le test a faire en fonction des donnees a traiter
a2rconseil
Messages postés6Date d'inscriptionjeudi 5 août 2004StatutMembreDernière intervention10 novembre 2006 10 nov. 2006 à 09:13
Je te remercie beaucoup de tes amples explications et du temps que tu y as passé.
J'aprécie réellement.
Je vais essayé ca rapidement.
Désolée de ne pas être à votre hauteur...