Ordonner un tableau sur la colonne de son choix [PHP] - PHP - Programmation
Marsh Posté le 12-07-2003 à 00:27:55
Ca vient d'une base de données ? Le plus simple est de refaire la requête en modifiant simplement le ORDER BY.
Marsh Posté le 12-07-2003 à 01:02:58
Ca vient d'une base de données mais c'est en fait la réunion de 2 tableaux venant d'une base (champs identiques). Je souhaite continuer à faire 2 requetes séparées, mais il me faut absolument trouver un moyen de retrier proprement le tableau
Marsh Posté le 12-07-2003 à 03:37:36
hum ... a mon avi si tu veux garder la correlation, va falloir se taper tout 'al mano'
mais tu peu ptet te faire un mix : tu trie la colone de ref avec la f° puis tu compare pour recreer le tableau (heu ... suis ptet pas tres clair la .. )
Marsh Posté le 12-07-2003 à 17:02:36
avec multisort et en t'arrangeant pour avoir plusieurs tableaux, il garde le lien entre les tableaux (voir exemples sur http://be.php.net/manual/fr/functi [...] isort.php)
$tab1= array( 4, 3, 2, 1);
$tab2= array( a, b, c, d);
array_multisort($tab1, $tab2);
//$tab1= 1, 2, 3, 4
//$tab2= d, c, b, a
array_multisort($tab2, $tab1);
//$tab1= 4, 3, 2, 1
//$tab2= a, b, c, d
//... pas de changement ...
Marsh Posté le 13-07-2003 à 12:38:19
Ah, piste intéressante par contre ca ne fonctionne pas avec mon type de tableau
Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag |
Pour prendre un exemple complet, je voudrais trier mon tableau $array par ordre croissant des valeurs de la 9ième colonne :
$array[0][9] = 0;
$array[1][9] = 1;
$array[2][9] = 2;
$array[3][9] = 4;
$array[4][9] = 3;
$array[5][9] = 5;
$array[6][9] = 6;
$array[7][9] = 8;
$array[8][9] = 7;
$array[9][9] = 9;
Et obtenir donc :
$array[0][9] = 0;
$array[1][9] = 1;
$array[2][9] = 2;
$array[3][9] = 3;
$array[4][9] = 4;
$array[5][9] = 5;
$array[6][9] = 6;
$array[7][9] = 7;
$array[8][9] = 8;
$array[9][9] = 9;
Marsh Posté le 11-07-2003 à 23:49:51
Je viens de me taper la doc sur sort, asort, arsort, ksort, natsort et tous leurs copains, mais sans trouver ce que je cherche. C'est pourtant très bête : je dispose d'un tableau avec plusieurs colonnes contenant des valeurs numériques, et je voudrais faire un classement par ordre croissant de la colonne de mon choix (en conservant la corrélation entre les index et les valeurs bien sûr). Il existe une fonction toute faite pour ca en PHP ou il faut se demmerder à la main