begin process at 2012 02 15 19:09:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > TRI DE TABLEAUX MULTI-DIMENSIONNELS

TRI DE TABLEAUX MULTI-DIMENSIONNELS


 Information sur la source

Note :
Aucune note
Catégorie :Application Niveau :Débutant Date de création :21/04/2003 Date de mise à jour :21/04/2003 17:16:33 Vu :10 997

Auteur : naholyr

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

array tri (array array, string critere)

retourne le tableau array, trié selon le critere de comparaison. Les tableaux a triés sont a deux dimensions: une liste de tableaux associatifs, et c'est la clé des tableaux associatifs qui sera utilisée comme critère.
Typiquement, c'est le genre de tableaux qu'on obtient quand on extrait des données d'une base.

Source

  • function cmp($ar1, $ar2, $key)
  • {
  • return ( ($ar1[$key] > $ar2[$key]) ? 1 : ( ($ar1[$key] == $ar2[$key]) ? 0 : -1));
  • }
  • function tri($array, $critere)
  • {
  • $cmp = create_function('$a, $b', 'return cmp($a, $b, "'.$critere.'");');
  • uasort($array, $cmp);
  • return $array;
  • }
function cmp($ar1, $ar2, $key)
{
  return ( ($ar1[$key] > $ar2[$key]) ? 1 : ( ($ar1[$key] == $ar2[$key]) ? 0 : -1));
}

function tri($array, $critere)
{
  $cmp = create_function('$a, $b', 'return cmp($a, $b, "'.$critere.'");');
  uasort($array, $cmp);
  return $array;
}

 Conclusion

[Exemple]
$array = array(
  array('nom'=>'Nicolas', 'age'=>21),
  array('nom'=>'Zac', 'age'=>12),
  array('nom'=>'Alice', 'age'=>8)
);

print_r(tri($array, 'nom')); // affiche le tableau trié par noms croissants
print_r(tri($array, 'age')); // affiche le tableau trié par ages croisants


 Sources du même auteur

Source avec Zip MODULE DE GESTION D'ERREUR
Source avec Zip LECTURE DES FICHIERS DE CONFIGURATION .INI
Source avec Zip COURS COMPLET SUR LES EXPRESSIONS RÉGULIÈRES EN PHP
STRINGTOKENIZER - IMPLÉMENTATION DE LA CLASSE JAVA EN PHP
PHP TO JS - CONVERSION D'UNE VARIABLE EN PHP VERS JAVASCRIPT

 Sources de la même categorie

Source avec une capture PHPREPOGENERATOR + REPO (WIN) par alvinp
Source avec Zip IPHONE - ICÔNE D'APPEL TÉLÉPHONIQUE SUR L'ÉCRAN D'ACCUEIL par Rainbow
Source avec Zip Source avec une capture [APP WEB]SERVEUREXPLOREUR par thematrix01
Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme

Commentaires et avis

Commentaire de dpitard le 03/05/2003 16:20:00

pr eviter que les clés en majuscule apparaissent avant les autres, il faut modifier cmp:
function cmp($ar1, $ar2, $key)
{
    return ( (strtoupper($ar1[$key]) > strtoupper($ar2[$key])) ? 1 : ( (strtoupper($ar1[$key]) == strtoupper($ar2[$key])) ? 0 : -1));
}

Commentaire de turcotda le 17/08/2008 21:10:15

Salut.
Je trouve ce script intéressant pour une de mes applications, surtout que je ne suis pas tellement expérimenté avec les tableaux. J'ai donc incorporé ce script à mes programmes. Toutefois, si je fais la modif suivante à l'exemple de la conclusion:

initial...
print_r(tri($array, 'nom'));

remplacé par...
tri($array, 'nom');
print_r($array);

Le programme imprime le tableau dans l'ordre initial.

Pourquoi la commande return $array; ne retourne pas le tableau trié dans mon exemple ??? Quelle autre modif dois-je apporter ?
Merci èa l'avance pour vos commentaires.

Commentaire de naholyr le 17/08/2008 23:01:41

Ben une fonction qui retourne une valeur, si tu n'affectes pas cette valeur à quelque chose c'est normal que tu perdes l'information...

$tableau_trie = tri($tableau);
print_r($tableau_trie);

Commentaire de eikichi le 03/05/2011 16:24:23

Bonjour a tous,

Que dois-je modifier pour obtenir un tri décroissant?

D'avance merci.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,515 sec (3)

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