Est il possible d'utiliser sort 2 fois de suites sur le meme array ?

Est il possible d'utiliser sort 2 fois de suites sur le meme array ? - PHP - Programmation

Marsh Posté le 14-09-2004 à 22:04:23    

Salut,
 
j'ai un petit script php, pour afficher les fichiers de mon repertoire ftp.
 
J'ai réussi à faire les tris par date, par contre j'aimerais séparer les dossiers des fichiers, donc je pensais trier par date tout ca, puis après rajouter 0 pour les dossier, 1 pour les fichiers, et faire un tri numérique, mais ca me donne n'importe quoi.
 
Donc c'est peut etre impossible,
 
je n'ai pas trouvé de tri qui peuvent me faire ca, mais j'ai peut etre mal vu .. Merci bien


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 14-09-2004 à 22:04:23   

Reply

Marsh Posté le 14-09-2004 à 22:22:28    

is_dir() ou is_file()


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 14-09-2004 à 23:16:56    

Nonnon, mon problème n'est pas de savoir s'il s'agit d'un fichier ou pas, mais de les trier 2 fois (un tri par date, et une separation fichier-repertoire).
 
A moins que is_dir ou is_file me le permet ?
edit : d'apres ce que je viens de lire sur php.net, on ne dirait pas.


Message édité par gee le 14-09-2004 à 23:17:52

---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 14-09-2004 à 23:20:38    

Perso, dès que le tri devient un peu délicat, je passe sur usort et une fonction de comparaison, c'est probablement la meilleure solution dans ton cas :)

Reply

Marsh Posté le 14-09-2004 à 23:25:44    

bah j'ai essayé de faire ca apres le 1er sort, mais je ne m'en suis pas sorti :)
 
Je suis en train de regarder usort sur php.net, ca a l'air d'être quelque comme cela, mais faudra que je cherche un peu comment m'en sortir alors, car je ne peux pas faire une seule fonction sur les 2 critères j'imagine.
 
Merci pour l'aide.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 14-09-2004 à 23:33:40    

Ca dépend si tu veux faire deux tris consécutifs indépendants ou un seul tri multi-critère :)
 
Bon, ceci dit, la fonction de callback pourrait être hard, j'vais essayer pour le fun :)

Reply

Marsh Posté le 15-09-2004 à 00:47:00    

Bon, ben j'ai fait l'expérience, la fonction de callback n'est pas spécialement difficile à écrire, c'est juste un bel exercice de logique :D

Reply

Marsh Posté le 15-09-2004 à 01:14:12    

euh c'est quoi une fonction de callback ? du récursif ?
Je suis tout bébé dans le monde du php ( et de toute facon mon niveau en prog, dans les autres langages est pas top non plus :D )
 
Je regarderais cela demain apres midi,
 
Merci


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 15-09-2004 à 01:42:21    

Non, c'est juste une terminologie qui désigne un appel particulier à une fonction créée par l'utilisateur mais pas sous la forme normale.
 
Par exemple

Code :
  1. function mafonction($a,$b){
  2. ...
  3. }
  4. usort($tableau,'mafonction');


 
mafonction est une fonction utilisateur appellée en callback  par usort. C'est donc usort lui même qui passera les paramètres à la mafonction.
 
Bref, te casse pas la tête avec les noms, la fonction de callback dans ton problème, c'est la fonction de comparaison entre 2 éléments :)


Message édité par naceroth le 15-09-2004 à 01:42:48
Reply

Marsh Posté le 15-09-2004 à 10:56:38    

oh ok, c'est ce que j'avais tenté avec un sort moi.
 
Je vais regarder cela tout à l'heure, la je n'ai pas trop le temps.
 
Merci bien,


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 15-09-2004 à 10:56:38   

Reply

Marsh Posté le 15-09-2004 à 11:15:59    

naceroth a écrit :

Bon, ben j'ai fait l'expérience, la fonction de callback n'est pas spécialement difficile à écrire, c'est juste un bel exercice de logique :D


Ben tu testes l'attribut 1 (date), tu tries dessus, si les dates sont identiques du testes l'attribut 2 et tu tries dessus
 
non? [:gratgrat]
j'ai oublié un truc? [:gratgrat]
 
gee -> doc usort, ca peut t'être utile ;)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-09-2004 à 13:06:16    

Comme cela j'obtiendrais une alternance dossier-fichier en fonction de la data non ?
 
Alors que moi je veux mettre tout les dossiers en 1er et après les fichiers (comme dans tout ftp classique :D ).
 
Merci pour la doc, mais je connais le site, j'ai juste beaucoup de mal à trouvé ce que je cherche quand je ne connais pas la commande :ange:
 
Merci pour l'aide.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 15-09-2004 à 13:11:42    

bin t'inverses, tu tries d'abord par dossiers/fichiers puis par date
 
donc (un peu au pif, je fais jamais de PHP)

Code :
  1. func($a, $b)
  2. {
  3.     if(is_dir($a)&&is_file($b))
  4.     {   return 1; }
  5.     if(is_file($a)&&is_dir($b))
  6.     {   return -1; }
  7.     // comparaison des dates
  8. }


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-09-2004 à 13:16:03    

Oh ok je commence a mieux comment marche la fonction de comparaison.
 
Merci bien.


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 15-09-2004 à 17:09:42    

Masklinn a écrit :

Ben tu testes l'attribut 1 (date), tu tries dessus, si les dates sont identiques du testes l'attribut 2 et tu tries dessus
 
non? [:gratgrat]
j'ai oublié un truc?  


 
Non, c'est ça, faut juste bien déterminer quand tu renvois -1, 0 ou 1, elle est pas difficile à écrire à part ça :)

Reply

Marsh Posté le 15-09-2004 à 17:18:19    

naceroth a écrit :

Non, c'est ça, faut juste bien déterminer quand tu renvois -1, 0 ou 1, elle est pas difficile à écrire à part ça :)


 
non, c'est pas ca, c'est l'inverse :) faut d'abord regarder si c'est file ou dir, et si les 2 sont identiques, par date...

Reply

Marsh Posté le 15-09-2004 à 17:26:36    

Citation :

non, c'est pas ca, c'est l'inverse :) faut d'abord regarder si c'est file ou dir, et si les 2 sont identiques, par date...


1- je demandais confirmation sur le principe du tri, pas sur l'ordre des opérations
2- l'ordre de tri n'était pas initialement précisé
3- l'ordre correct des opérations dans le callback a été corrigé et donné après que l'auteur m'ait donné des informations complémentaires sur la manière de trier, 5 messages au dessus du tien


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 15-09-2004 à 18:24:55    

Bon je crois que j'ai réussi finalement,
 
Merci à vous de m'avoir mis sur le droit chemin, et en effet j'ai galéré sur les 1/-1 au final :D, mais bon ca marche :)


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 16-09-2004 à 09:32:55    

Masklinn a écrit :

Citation :

non, c'est pas ca, c'est l'inverse :) faut d'abord regarder si c'est file ou dir, et si les 2 sont identiques, par date...


1- je demandais confirmation sur le principe du tri, pas sur l'ordre des opérations
2- l'ordre de tri n'était pas initialement précisé
3- l'ordre correct des opérations dans le callback a été corrigé et donné après que l'auteur m'ait donné des informations complémentaires sur la manière de trier, 5 messages au dessus du tien


 
je vais juste te repondre "ce message ne t'etait pas destine"... vu que j'repondais pas a toi, mais a celui qui te cite et qui dit "c'est ca"

Reply

Marsh Posté le 16-09-2004 à 17:14:06    

FunkyMan a écrit :

je vais juste te repondre "ce message ne t'etait pas destine"... vu que j'repondais pas a toi, mais a celui qui te cite et qui dit "c'est ca"


 
1. Masklinn demandait confirmation sur le principe du tri, pas sur l'ordre des opérations
2. l'ordre de tri n'était pas précisé
3. l'ordre correct des opérations dans le callback est laissé à la discretion de l'auteur d'origine, qui n'est pas la personne à qui j'ai répondu "c'est ça"
 
 :sarcastic:


Message édité par naceroth le 16-09-2004 à 17:14:23
Reply

Marsh Posté le 16-09-2004 à 18:08:38    

Ne vous enervez pas, c'est ma faute de ne pas avoir précisé tot l'ordre du tri, mais dans ma tête c'était logique :ange:


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed