Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3015 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Tri Tableau Multidimensionnel alimenté par LDAP [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Tri Tableau Multidimensionnel alimenté par LDAP [RESOLU]

n°957882
Fish Moon
Vivre et ne Pas Survivre
Posté le 20-01-2005 à 21:23:19  profilanswer
 

Bonjour à tous,
 
tout d'abord je tiens à féliciter ceux qui se donnent du mal pour répondre, ça fait plaisir de voir tant de gens solidaires en parcourant les topics !
 
**** Intro pas interressante du tout ***
je suis un p'tit nouveau en PHP et donc aprés prés de 15 jours pour dompter les requettes LDAP ça fait deux jours que je m'arrache les cheveux pour essayer de trier proprement mes données... Tout les sites que j'ai pu voir sur la fonction array_multisort sont trés balaise pour reprendre la doc PHP mot pour mot...
****************************************
 
Bon je choppe des infos dans un annuaire LDAP sans problème et je stoque ça dans un tableau Multi Dimensionnel, genre:
 
Boucle avec $i pour parcourir toutes les entrées du DN
{
$Resultat[$i][cn] = Requette pour recup "cn"
$Resultat[$i][description] = Requette pour recup "description"
$Resultat[$i][phone] = Requette pour recup "telephone"
...
}
 
Donc j'arrive bien à afficher mes Résultats et même a les Trier sur le premier critère avec:
 
array_multisort ($Resultat);
 
mais j'aimerais pouvoir trier en fonction de [description] ou [phone] ect...
 
Voilà ben merci pour votre attention.  :hello:


Message édité par Fish Moon le 22-01-2005 à 10:03:17
mood
Publicité
Posté le 20-01-2005 à 21:23:19  profilanswer
 

n°957960
cerel
Posté le 20-01-2005 à 22:18:53  profilanswer
 

http://ch2.php.net/manual/fr/funct [...] tisort.php

meddle at dzygn.com le 05-Oct-2004 04:40 a écrit :

 
If you want to sort a multidomensional array by key name you cannot use array_multisort. ie: for an array named $archivos that prints like this:
 
Array
(
   [0] => Array
       (
           [index] => 0
           [name] => test
       )
 
   [1] => Array
       (
           [index] => 0
           [name] => watertaxi.jpg
       )
 
   [2] => Array
       (
           [index] => 0
           [name] => 2_0003.JPG
       )
 
   [3] => Array
       (
           [index] => 0
           [name] => 24A_0025.JPG
       )
 
   [4] => Array
       (
           [index] => 1
           [name] => _CIMG3501.JPG
       )
 
)
 
If I wanted to order by "name" I'd use:
 
function comparar($a, $b) {
       return strnatcasecmp($a["name"], $b["name"]);
}
usort($archivos, "comparar" );
 
This function performs a case insensitive string comparison using a "natural order" algorithm (strnatcasecmp), resulting in:
 
Array
(
   [0] => Array
       (
           [index] => 0
           [name] => 2_0003.JPG
       )
 
   [1] => Array
       (
           [index] => 0
           [name] => 24A_0025.JPG
       )
 
   [2] => Array
       (
           [index] => 0
           [name] => test
       )
 
   [3] => Array
       (
           [index] => 0
           [name] => watertaxi.jpg
       )
 
   [4] => Array
       (
           [index] => 1
           [name] => _CIMG3501.JPG
       )
 
)




 
Comme indique dans le commentaire, tu dois utiliser usort pour faire le triage que tu veux. Array_multisort ne fonctionne pas pour le tri que tu veux.


Message édité par cerel le 20-01-2005 à 22:21:04
n°957983
Fish Moon
Vivre et ne Pas Survivre
Posté le 20-01-2005 à 22:34:10  profilanswer
 

Ca marche impec ! MERCI bcp !  :bounce:  
 
y'a un tout petit bémol mais je vais y réfléchir un peu avant d'envisager un repost...
 

n°976846
Fred999
Rabat-joie
Posté le 09-02-2005 à 18:12:52  profilanswer
 

Salut tlm,
 
Je me permets de remonter ce topic.
 
La fonction donnée ici ert sur www.php.net pour un tableau de tri multidimensionnel fonctionne bien, mais a un gros souci de perfs (en tout cas chez moi).
 
Pour trier un tableau à deux dimensions de 4000 éléments sur la seconde colonne, ça prend plus de 15 secondes !
 
A tel point que j'ai fini par concaténer mes champs, pour pouvoir utiliser  un rsort() et refaire ensuite un explode(). Très sale, mais ça ne prend plus que quelques dixièmes.
 
Si quelqu'un a le même genre d'expérience à partager, j'en serais ravi :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Tri Tableau Multidimensionnel alimenté par LDAP [RESOLU]

 

Sujets relatifs
Manipulation de tableauCommunication entre threads [Résolu & Code Source Final]
[RESOLU] Fatal error: main() [function.main] - class php5[VBS][résolu] imbriquer des "do while ... loop"?
supprimer un objet d'un array [resolu]Pb mise en forme tableau - CSS !! help me
images de rangs.. [RESOLU]Màj config client ($_SESSION) si màj de config serveur (BDD) [RESOLU]
(resolu)include(pseudo frame) merci quand meme[résolu]pb de droit sur fichier upload via script [merci!]
Plus de sujets relatifs à : [RESOLU] Tri Tableau Multidimensionnel alimenté par LDAP [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR