Tri dans un tableau (débutant inside) - PHP - Programmation
Marsh Posté le 12-12-2005 à 11:49:47
usort est ton ami...
un truc dans le genre:
Code :
|
edit: je rajouterais des tests pour m'assurer que la clé existe pour a et b
Marsh Posté le 12-12-2005 à 13:38:14
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.
Marsh Posté le 12-12-2005 à 16:26:10
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. :-)
Marsh Posté le 12-12-2005 à 17:39:48
LOL jdois être trop mauvais (ha ouais vous l'aviez déjà déviné ) , 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)
);
Marsh Posté le 12-12-2005 à 17:58:14
OKAYYYYY
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 .
Mci pour ton précieux coup de main l'air de rien !
Marsh Posté le 13-12-2005 à 16:10:35
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
Marsh Posté le 13-12-2005 à 23:27:44
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
Marsh Posté le 12-12-2005 à 11:32:29
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 ?!?