Array sort PHP
Résolu/Fermé
A voir également:
- Array sort PHP
- Easy php - Télécharger - Divers Web & Internet
- Aucun son ne sort de mon pc - Guide
- Undefined array key ✓ - Forum PHP
- Php?id=1 - Forum PHP
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
2 réponses
Bonjour
La fonction uksort tes permet de faire ce genre de chose. Tu définis une fonction de comparaison dans laquelle tu compares selon tes propres critères, et qui rend -1,0 ou 1 selon que le 1er argument est <, = ou > au second
petit inconvénient : l'indice de premier niveau n'est pas celui que tu veux. Il suit le mouvement du tri. Si tu tiens à avoir des indices croissants, il suffit de balayer le tableau avec un foreach et de réattribuer les bons indices (sur une copie du tableau)
La fonction uksort tes permet de faire ce genre de chose. Tu définis une fonction de comparaison dans laquelle tu compares selon tes propres critères, et qui rend -1,0 ou 1 selon que le 1er argument est <, = ou > au second
<?php function MaComparaison ($a,$b) { if ($a[0]==$b[0]) return 0; return ($a[0] > $b[0]) ? 1 : -1; } $tbl= Array ( 1=>Array ( 0 => 'Grospierre Jérémy' ,'id' => 15, 1 => 2.50 ,3 => 3.00, 4 => 1.00 ,5 => 4.50 ), 2=>Array ( 0 => 'Ambrosio david', 'id' => 18, 2 => 3.00 ) ) ; uksort ($tbl,"MaComparaison"); print_r($tbl); ?>
petit inconvénient : l'indice de premier niveau n'est pas celui que tu veux. Il suit le mouvement du tri. Si tu tiens à avoir des indices croissants, il suffit de balayer le tableau avec un foreach et de réattribuer les bons indices (sur une copie du tableau)
Merci pour votre solution mais il est possible que le tableau aie plusieurs sous-tableau:
Votre solution est-t-elle encore applicable ?
Merci
Array ( [1] => Array ( [0] => Grospierre Jérémy [id] => 15 [1] => 2.50 [3] => 3.00 [4] => 1.00 [5] => 4.50 ) [2] => Array ( [0] => Ambrosio david [id] => 18 [2] => 3.00 ) [3] => Array ( [0] => Zakari Olivier [id] => 42 [2] => 1.00 ) [4] => Array ( [0] => Gentil david [id] => 6 [2] => 7.00 ) )
Votre solution est-t-elle encore applicable ?
Merci