En gros
usort() tu lui passes ton tableau et une fonction en paramètre, et il va utiliser cette fonction pour comparer les éléments.
Ta fonction va donc être appelée plusieurs fois, pour comparer chaque élément de ton tableau 2 par 2. Le
$a correspond a un élément de ton tableau, et le
$b correspond à un autre. Le rôle de ta fonction va être de dire si
$a doit être classé avant
$b, ou l'inverse, ce qui permettra donc de trier le tableau comme tu veux.
Si
$a est inférieur à
$b (c'est à dire que
$a doit être classé
avant $b), alors tu retournes
-1, sinon tu retournes
1. Si tu retournes
0, c'est que les deux éléments sont identiques (même prénom par exemple).
strcmp() est justement très pratique à utiliser avec
usort() puisque c'est une fonction qui retourne -1 si la première chaine est inférieur à la seconde, sinon 1 (ou 0 si les deux chaînes sont identiques).
Et à partir de PHP 5.3 tu peux faire ça directement, plutôt que de déclarer une fonction :
usort($tableauFinal, function($a, $b)
{
return strcmp($a[0], $b[0]);
});
Et je te conseil aussi si possible de nommer tes clefs pour les prénoms, noms et ages de manière littéraire plutôt qu'avec des chiffres, c'est beaucoup plus simple pour s'y retrouver après
usort($tableauFinal, function($a, $b)
{
return strcmp($a['name'], $b['name']);
});
En gros [i]usort()[/i] tu lui passes ton tableau et une fonction en paramètre, et il va utiliser cette fonction pour comparer les éléments.
Ta fonction va donc être appelée plusieurs fois, pour comparer chaque élément de ton tableau 2 par 2. Le [b]$a[/b] correspond a un élément de ton tableau, et le [b]$b[/b] correspond à un autre. Le rôle de ta fonction va être de dire si [b]$a[/b] doit être classé avant [b]$b[/b], ou l'inverse, ce qui permettra donc de trier le tableau comme tu veux.
Si [b]$a[/b] est inférieur à [b]$b[/b] (c'est à dire que [b]$a[/b] doit être classé [u][i]avant[/i][/u] [b]$b[/b]), alors tu retournes [b]-1[/b], sinon tu retournes [b]1[/b]. Si tu retournes [b]0[/b], c'est que les deux éléments sont identiques (même prénom par exemple).
[i]strcmp()[/i] est justement très pratique à utiliser avec [i]usort()[/i] puisque c'est une fonction qui retourne -1 si la première chaine est inférieur à la seconde, sinon 1 (ou 0 si les deux chaînes sont identiques).
Et à partir de PHP 5.3 tu peux faire ça directement, plutôt que de déclarer une fonction :
[php]usort($tableauFinal, function($a, $b)
{
return strcmp($a[0], $b[0]);
}); [/php]
Et je te conseil aussi si possible de nommer tes clefs pour les prénoms, noms et ages de manière littéraire plutôt qu'avec des chiffres, c'est beaucoup plus simple pour s'y retrouver après ;)
[php]usort($tableauFinal, function($a, $b)
{
return strcmp($a['name'], $b['name']);
});[/php]