Accueil > Forum > > > > Tri multi-dimensionnel
Tri multi-dimensionnel
mardi 19 avril 2005 à 10:08:36 |
Tri multi-dimensionnel

Aline77
|
Bonjour, J'ai un tableau : Array ( [10900] => Array ( [nom] => Aline [bon] => 0 )
[10905] => Array ( [nom] => Olivier [bon] => 0 ) ...) Je souhaite trier ce tableau par ordre alphabétique sur les noms, SANS PERDRE MA CLÉ (10900, 10905, ...) J'ai réussi à trier ce tableau multi-dimensionnel sur les noms grace à array_multisort, mais mes clés devenaient 0, 1, 2... Quelqu'un peut-il m'aider ??? Merci
|
|
mardi 19 avril 2005 à 10:37:14 |
Re : Tri multi-dimensionnel

malalam
|
Hello,
ce n'est pas tres orthodoxe, mais a priori ca a l'air de marcher. A tester quand meme hein... :
<?php
$tab = array (10900 => array ('nom' => 'Olivier', 'bon' => 0), 19050=> array ('nom' => 'Aline', 'bon' => 0));
?>
<pre>
<?php
print_r ($tab);
?>
</pre>
<?php
function comparaison ($valeurA, $valeurB) {
if ($valeurA['nom'] === $valeurB['nom'])
return 0;
return ($valeurA['nom'] > $valeurB['nom']) ? -1 : 1;
}
uksort ($tab, 'comparaison');
?>
<pre>
<?php
print_r ($tab);
?>
</pre>
|
|
mardi 19 avril 2005 à 10:38:32 |
Re : Tri multi-dimensionnel

malalam
|
Et a ameliorer parce que la je fais une comparaison sur le code ASCII
donc il y aura probleme en cas de comparaison majuscules / minuscules.
|
|
mardi 19 avril 2005 à 11:02:31 |
Re : Tri multi-dimensionnel

malalam
|
Bon j'ai modifie la fonction moi-meme, c'etait simple et je n'y avais pas pense :
function comparaison ($valeurA, $valeurB) {
if ($valeurA['nom'] === $valeurB['nom'])
return 0;
return (strtolower ($valeurA['nom']) > strtolower($valeurB['nom'])) ? -1 : 1;
}
|
|
mardi 19 avril 2005 à 11:03:18 |
Re : Tri multi-dimensionnel

malalam
|
Oups :
function comparaison ($valeurA, $valeurB) {
if (strtolower ($valeurA['nom']) === strtolower ($valeurB['nom']))
return 0;
return (strtolower ($valeurA['nom']) > strtolower ($valeurB['nom'])) ? -1 : 1;
}
|
|
mardi 19 avril 2005 à 11:29:45 |
Re : Tri multi-dimensionnel

Aline77
|
Réponse acceptée !
Ben ça ne marche pas vraiment... Pourtant ça devrait ! Par contre, on a trouvé un truc avec un collègue : si la clé est une chaine de caractère et non un nombre, il garde bien la clé. Donc je construit mon tableau ainsi :
foreach ($aTableau as $sCle=>$aVal) { $aTab[serialize($aVal[0])] = array($aNoms[$aVal[0]], 0); } array_multisort($Tab, SORT_ASC);
Je serialize ma clé pour en faire une chaine de caractère : Array ( [s:5:"11006";] => Array ( [nom] => Aline [bon] => 0 )
[s:5:"10927";] => Array ( [nom] => Louis [bon] => 0 )
[s:5:"11593";] => Array ( [nom] => Olivier [bon] => 0 ) ... et quand je la récupère, je la "unserialize". Merci pour le coup de main quand même !
|
|
mardi 19 avril 2005 à 11:40:24 |
Re : Tri multi-dimensionnel

malalam
|
Hello,
ben c#etait ma prochaine solution si celle-ci ne fonctionnait pas lol.
Mais je n'etais pas sur que tu acceptes de modifier un tant soit peu
tes index.
|
|
Cette discussion est classée dans : tableau, tri, array, multi, dimensionnel
Répondre à ce message
Sujets en rapport avec ce message
tri tableau 2 dimensions [ par lebobby ]
Bonjour je voudrais savoir comment je pourrais faire pour trier ce tableau :$tab[0]=array("i"=>"23", "c" => "rge", "date" =>'2002-08-03 12:00:00');$ta
Trier un tableau selon 2 critères [ par tombal ]
J'aimerais trier un tableau de requete mysql selon 2 critèresJe voudrais qu'il le tri dabord par ordre decroissant selon le nombre de points (le score
[MySQL] Sauvegarde d'un tableau dans une table [ par cedvoyage ]
Bonjour,J'aimerais sauvegarder un tableau (multimensionnel) dans ma base MySQL.Or quand j'essaye je n'ai que 'Array' de marquer dans le champ de ma ta
tri tableau par un lien sur entête de colonne [ par mezees ]
bonjour,je cherche un script qui me permettrait :- d'afficher dans une page, un tableau qui vient d'une base sql (ça je sais faire...)- d'avoir sur ce
problème de tri [ par tungsten180 ]
Salut,j'ai un problème pour effectuer un tri. Ce bout de code me sert à afficher le nom des fichier d'un dossier avec l'heure de dernière modif, mais
tri d'un array [ par Tartuffe ]
Bonjour, j'ai un array qui a cette forme : $variable[0]=(1134, 10, 100, 56) $variable[1]=(1115, 10, 101, 312) $variable[2]=(25, 8, 100, 75) $variabl
Fonction callback et classes [ par malalam ]
Salut :-)J'ai un petit soucis : je veux utiliser array_filter() dans une fonction membre d'une classe.J'ai defini ma fonction callback dans cette meme
incrementation difficile [ par charly25 ]
bonjou ou bonsoir (je suis plus tres sur...)j'essaye actuellement de lier des menus deroulants (la selection dans l'un agit sur l'autre et vice versa)
probleme array tableau [ par guiguipumpkin ]
bonjour,je ne trouve pas la fonction php qui permet de supprimer un element d'un tableau array, suivant un indice iun peu comme array_shift mais en po
Tableau (array) (pour les pros du PHP) [ par jockos ]
Bonjour,J'ai 2 questions très techniques auxquel je n'ai trouvé AUCUNE réponse sur les nombreux sites et manuels PHP.Est-ce que les élements d'un tabl
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|