begin process at 2012 05 31 11:14:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Tri multi-dimensionnel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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);
}
a
rray_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

Administrateur CodeS-SourceS
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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales