Vous consultez les articles taggés sort
Fév
29

Trier la colonne d’un tableau sans prendre en compte la casse et les accents

Par défaut, la fonction array_multisort n’est pas casse sensitive et ne gère pas les accents.

Du coup avec un tableau contenant « Allemagne », « Enfant », « Équipe », « Toto », on se retrouve avec l’ordre suivant : Allemagne, Enfant, Toto, Équipe

Pour contourner cela, nous allons faire appel à la fonction array_map afin de nettoyer les données à trier.

<?php
$functionSansAccent = function ($chaine) {
        if (version_compare(PHP_VERSION, '5.2.3', '>='))
            $str = htmlentities($chaine, ENT_NOQUOTES, "UTF-8", false);
        else
            $str = htmlentities($chaine, ENT_NOQUOTES, "UTF-8");
 
        // NB : On ne peut pas utiliser strtr qui fonctionne mal avec utf8.
        $str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
 
        return $str;
};
 
$data[] = array('mots' => 'Toto', 'nb' => 2);
$data[] = array('mots' => 'Allemagne', 'nb' => 2);
$data[] = array('mots' => 'Enfant', 'nb' => 1);
$data[] = array('mots' => 'Équipe', 'nb' => 6);
 
// On récupére les valeur de la première colonne
foreach ($data as $key => $row) {
    $colSort[]  = $row['mots'];
}
 
 //$colSort = array("Allemagne", "Enfant", "Équipe", "Toto");
//On supprime les accents
  $array_sans_accent = array_map($functionSansAccent , $colSort);
//On met en minuscule
  $array_lowercase = array_map('strtolower', $array_sans_accent);
// Ajoute $data en tant que dernier paramètre, pour trier par la clé commune
  array_multisort($array_lowercase, SORT_ASC, $data);
 
  print_r($data);
/*
Le rendu sera
 
Array
(
    [0] => Array
        (
            [mots] => Allemagne
            [nb] => 2
        )
 
    [1] => Array
        (
            [mots] => Enfant
            [nb] => 1
        )
 
    [2] => Array
        (
            [mots] => Équipe
            [nb] => 6
        )
 
    [3] => Array
        (
            [mots] => Toto
            [nb] => 2
        )
 
)
*/
Août
25

Tri de tableaux et danse folklorique

Si, comme nous, vous développez au quotidien, vous êtes sans aucun doute régulièrement confrontés à la problématique du tri de tableaux. Vous savez alors certainement qu’il existe différents algorithmes de tri.

Les étudiants de l’université roumaine de Sapienta ont eu la bonne (et drôle) idée d’illustrer ces algorithmes par des chorégraphies de danses hongroises. C’est vraiment sympa à regarder, et c’est un moyen ludique d’apprendre un algorithme !

 

Ils ont également une page Facebook et une chaîne sur Youtube si vous voulez visionner davantage de vidéos.

Août
5

Trier sur une date française avec Tablesorter

Si vous utilisez le plugin tablesorter de JQuery, il se peut que vous ayez besoin de trier un colonne contenant des dates au format français. Par défaut, le tri va se faire comme si le contenu était une chaine, du coup, ce ne sera pas trié dans le bon ordre.

Pour faire ceci, il vous suffit d’ajouter ce morceau de js.

$('#listeOrganismes').tablesorter({
  dateFormat: 'uk',
  headers: {
     0: {sorter: "shortDate"},
     5: {sorter: false}
  }
});

Si vous utilisez le plugin datatables de JQuery, que personnellement je préfère, c’est ici que ça se passe

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes