1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| class TriDynamique
{
public function __call($nom, $arguments)
{
$tabNom = explode('-', $nom);
// $tabNom[0] contient 'tri'
// $tabNom[1] contient le nom de la clé à trier
$valeur1 = $arguments[0][$tabNom[1]];
$valeur2 = $arguments[1][$tabNom[1]];
if ($valeur1 == $valeur2) {
return 0;
}
return ($valeur1 < $valeur2) ? -1 : 1;
}
}
$triDynamique = new TriDynamique();
$donnees = array(
array(
'nom' => 'Pierre',
'age' => 24,
),
array(
'nom' => 'Paul',
'age' => 28,
),
array(
'nom' => 'Jacques',
'age' => 23,
),
);
echo "Données de départ : \n";
print_r($donnees);
echo "Tri suivant le nom : \n";
uasort($donnees, array($triDynamique, 'tri-nom'));
print_r($donnees);
echo "Tri suivant l'age : \n";
uasort($donnees, array($triDynamique, 'tri-age'));
print_r($donnees); |
Partager