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

  FORUM HardWare.fr
  Programmation
  PHP

  Tri dans un tableau (débutant inside)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tri dans un tableau (débutant inside)

n°1264342
groudier
Posté le 12-12-2005 à 11:32:29  profilanswer
 

Voilà désolé je débute et je galère un peu avec les tableaux, j'ai du mal à m'adapter à la logique PHPienne.
J'ai un tableau comme ça, et je sais pas comment faire pour le trier sur un critère donné, le salaire ou, le nom, ou le CA :
 
Array ( [0] => Array (  
[CLE_ID] => 100
[NOM] => REDFORD  
[PRENOM] => ROBERT
[AGE] => 18  
[SALAIRE] => 310000  
[CA] => 310  
)
[1] => Array (  
[CLE_ID] => 101
[NOM] => TOM
[PRENOM] => CRUISE
[AGE] => 20  
[SALAIRE] => 1160000  
[CA] => 1160  
)
[2] => Array (  
[CLE_ID] => 102
[NOM] => BOND
[PRENOM] => JAMES
[AGE] => 21  
[SALAIRE] => 510000  
[CA] => 510  
))

 
J'ai essayé :
asort($monTableau);" mais ça me trie le tableau sur le champ "CLE_ID", c'est pas ce que je cherche à faire évidemment.
asort($monTableau['NOM']) => Erreur
 
Si qqu'un peut m'aider. Désolé ça doit être trop simple mais là je bloque, j'arrive pas à trouver la bonne syntaxe.
Merci pour votre indulgence et pour votre aide éventuelle.
 
PS: Le tableau n'est pas de moi, il a peut être pas une bonne structure pour subir un tri par critères/colonnes ?!?

mood
Publicité
Posté le 12-12-2005 à 11:32:29  profilanswer
 

n°1264350
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-12-2005 à 11:49:47  profilanswer
 

usort est ton ami...
 
un truc dans le genre:

Code :
  1. function sortName($a, $b)
  2. {
  3.    if ($a['NOM'] == $b['NOM']) {
  4.      return 0;
  5.    }
  6.    return ($a['NOM'] > $b['NOM']) ? -1 : 1;
  7. }


 
edit: je rajouterais des tests pour m'assurer que la clé existe pour a et b


Message édité par anapajari le 12-12-2005 à 11:50:22
n°1264443
groudier
Posté le 12-12-2005 à 13:38:14  profilanswer
 

Bon, je crois que je n'ai plus qu'a prendre une journée pour travailler sur les tableaux parce que jpensais que ca serait vraiment plus simple avec toutes les fonctions _sort() que j'avais vu :-((.
Moralité, ne pas se fier aux apparences.
 
En tout cas merci pour ton aide et ta réponse !
Jvais potasser, le usort() en particulier.

n°1264623
chaced
Posté le 12-12-2005 à 15:45:27  profilanswer
 

une journée pour faire un trie sur un tableau ? hein ? :lol:
 
si tu ne sais pas utiliser les # sort # uasort # uksort et # usort, fait un sort a toi genre un tri a bulle a la con ;)


---------------
CPU-Z | Timespy | Mes bd
n°1264670
groudier
Posté le 12-12-2005 à 16:26:10  profilanswer
 

Ouais une journée (au boulot donc en faisant pas que ça non plus :-)) parce que j'ai jamais manipulé des tableaux en PHP (c'est pas qu'une question de fonctions de tri) et que cela me semble pas spécialement intuitif pour l'instant.
Notamment avec les colonnes nommées ou pas nommées, l'histoire de mon tableau imbriqué, etc... enfin bref, un bon vieux tableau tout moisi en VB ça me parle plus qu'en PHP quoi !
En plus il y a bien 7/8 ans que j'ai pas développé (suis rouillé quoi)...donc bon.
Mci pour le conseil en tout cas. :-)

n°1264689
chaced
Posté le 12-12-2005 à 16:46:14  profilanswer
 

tu peux faire un tableau moisi façon C en php si tu veux :D
 
genre $toto[0][0][0] ; :D


---------------
CPU-Z | Timespy | Mes bd
n°1264767
groudier
Posté le 12-12-2005 à 17:39:48  profilanswer
 

LOL jdois être trop mauvais (ha ouais vous l'aviez déjà déviné  :ange: ) , mais avec le test suivant je parviens pas aller chercher les valeurs .
Comment je fais pour aller chercher le salaire de James Bond par exemple en une ligne. Je pensais que ça ça marcherait :  
 
$monTableau[2]['SALAIRE']
 
Hé ben non. Donc soit c'est ma déclaration du Array qui est foireuse, soit je nage dans le potage (les 2 ptet bien même!).
 
$monTableau = Array (
0 => Array ( "CLE_ID" => 100, "NOM" => "REDFORD", "PRENOM" => "ROBERT", "AGE" => 18, "SALAIRE" => 310000, "CA" => 310),
1 => Array (  "CLE_ID" => 101, "NOM" => "TOM", "PRENOM" => "CRUISE", "AGE" => 20, "SALAIRE" => 1160000, "CA" => 1160),
2 => Array ( "CLE_ID" => 102, "NOM" => "BOND", "PRENOM" => "JAMES", "AGE" => 21, "SALAIRE" => 510000, "CA" => 510)
);


Message édité par groudier le 12-12-2005 à 17:45:20
n°1264776
chaced
Posté le 12-12-2005 à 17:45:19  profilanswer
 

echo $monTableau[2]["SALAIRE"] ;
 
Il est bien payé james bond :D


Message édité par chaced le 12-12-2005 à 17:59:17

---------------
CPU-Z | Timespy | Mes bd
n°1264788
groudier
Posté le 12-12-2005 à 17:58:14  profilanswer
 

OKAYYYYY  
 
[:alex_] [:alex_] [:alex_]
 
Bon j'avais la bonne syntaxe c'est déjà ça, ta réponse m'a super aidé en cela !
En fait mon echo c'était ça :
 
echo "$monTableau[2]["SALAIRE"]";
 
J'ai récup du code et j'ai pas enlevé les "" qui servait à afficher "$monTableau[2]["SALAIRE"] = " .
Et comme jsuis gros noob en PHP j'ai pas cherché à comprendre même si au début ça m'a semblé bizarre de mettre des guillemets autour du nom d'une variable pour afficher son contenu.
 
Bref une erreur d'inattention du à ma grande inexpérience du PHP.
Et surtout [:cyrille53].
Mci pour ton précieux coup de main l'air de rien !

n°1264789
chaced
Posté le 12-12-2005 à 17:59:51  profilanswer
 

erreur d'innatention surtout oui :D (ps j'avais oubliais le $ au tableau moi :D)


---------------
CPU-Z | Timespy | Mes bd
mood
Publicité
Posté le 12-12-2005 à 17:59:51  profilanswer
 

n°1265635
lordashram
Pour Marmot !!!
Posté le 13-12-2005 à 16:10:35  profilanswer
 

moi j'trouve ton tableau bien que compliqué très bien, j'serais plutôt passé par une structure, voire carément un objet( objet=bonheur parce que fonctions intégrées pour plus tard!!!!). Et un p'tit tri bulle est si vite fait en cherchant des tutos sur les tris ça doit strouver facilement genre http://www.phpfacile.com

n°1266014
groudier
Posté le 13-12-2005 à 23:27:44  profilanswer
 

En tout cas j'ai beaucoup de mal à me séparer des bonnes vieilles syntaxes de type indiciaires : tab(1,2)=... , tab(10)=...
Ca finira par rentrer, mais pour l'instant c'est pas intuitif pour moi.
Pour le tri j'ai fini par trouver ce qu'il me fallait.
Merci en tout cas pour la validation de la structure du tableau  :jap:  


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

  Tri dans un tableau (débutant inside)

 

Sujets relatifs
probleme avec tableauinitialiser un tableau 2D ds le main
[VB6] traitement sur tableau excel très lent [résolu][VBA Excel] Bloquer les barres de défilement à la fin d'un tableau
Trier meilleurs scores dans un tableauTrier meilleurs scores dans un tableau
Débutant, question sur syntaxe requete SQLProblème avec split et tableau [résolu]
[Résolu]Ajouter des lignes a un tableau par génération interne[C] Tri par insertion simple & pointeurs
Plus de sujets relatifs à : Tri dans un tableau (débutant inside)


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