Bonjour, y a t-il moyen de trier ce type de tableau par exemple par pseudo ? :
array (
0 => array ("pseudo" => "Oprichnik", "pass" => "bibi")
1 => array("pseudo" => "Dracau", "pass" => "astro")
)
Il faut donc trier les indexs.
Bonjour, y a t-il moyen de trier ce type de tableau par exemple par pseudo ? :
array (
0 => array ("pseudo" => "Oprichnik", "pass" => "bibi")
1 => array("pseudo" => "Dracau", "pass" => "astro")
)
Il faut donc trier les indexs.
tu peux faire ça avec la fonction http://php.net/usort
(j'avais ça sous la main)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php function pseudo_cmp($a, $b) { return strcmp($a['pseudo'], $b['pseudo']); } usort($mon_tableau, 'pseudo_cmp');
Merci ! pour la fonction toute faite aussi ça m'évite de chipoter !![]()
Seulement il y a un problème :
le tableau renvoyer enlève remplace les noms d'index du tableau (associatif) par un index :
array (
0 =>
array (
0 => '33',
1 => 'Bibi',
2 => 'bibi@hotmail.com',
3 => 'France',
4 => 'Paris',
)
la fonction uasort ne regle pas le problème..
Vous utilisez quoi ? Comment ? Sur quoi ?
usort ne modifie pas les tableaux sur les niveaux "supérieurs" (cf votre exemple et le code que j'ai donné).
Voici mon code ($orderBy contient quelque chose comme "pseudo desc" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 list($orderBy_champ,$orderBy_asc_dsc) = explode(" ",$orderBy); function champ_cmp($a, $b) { $sort_nb = strcmp($a[$GLOBALS["orderBy_champ"]], $b[$GLOBALS["orderBy_champ"]]); if(strtolower($GLOBALS["orderBy_asc_dsc"]) == "desc") { $sort_nb = -($sort_nb); } return $sort_nb; } usort($result, 'champ_cmp');
Et en affichant le tableau avant/après qu'obtenez-vous ?
Vous pouvez simplifier votre code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 list($orderBy_champ, $orderBy_asc_dsc) = explode(' ',$orderBy); function asc($a, $b) { return strcmp($a[$GLOBALS['orderBy_champ']], $b[$GLOBALS['orderBy_champ']]); } function desc($a, $b) { return strcmp($b[$GLOBALS['orderBy_champ']], $a[$GLOBALS['orderBy_champ']]); } usort($result, $orderBy_asc_dsc);
ok, je trie sur :
$FILE[0]["id"] = "10";
$FILE[0]["pseudo"] = "Oprichnik";
$FILE[0]["email"] = "mxxxxxxxxxxxxxxx";
$FILE[0]["pays"] = "Belgique";
$FILE[0]["ville"] = "Namur";
$FILE[1]["id"] = "20";
$FILE[1]["pseudo"] = "Dracau";
$FILE[1]["email"] = "dxxxxxx";
$FILE[1]["pays"] = "Belgique";
$FILE[1]["ville"] = "Namur";
$FILE[2]["id"] = "33";
$FILE[2]["pseudo"] = "Bibi";
$FILE[2]["email"] = "bibi@hotmail.com";
$FILE[2]["pays"] = "France";
$FILE[2]["ville"] = "Paris";
et j'obtiens :
array (
0 =>
array (
0 => '33',
1 => 'Bibi',
2 => 'bibi@hotmail.com',
3 => 'France',
4 => 'Paris',
),
1 =>
array (
0 => '20',
1 => 'Dracau',
2 => 'drxxxx',
3 => 'Belgique',
4 => 'Namur',
),
2 =>
array (
0 => '10',
1 => 'Oprichnik',
2 => 'maxxxxxx',
3 => 'Belgique',
4 => 'Namur',
),
)
Oups non désolé une erreur de ma part..
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager