[PHP] Ordonner un tableau sur la colonne de son choix

Ordonner un tableau sur la colonne de son choix [PHP] - PHP - Programmation

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 :??:

Reply

Marsh Posté le 11-07-2003 à 23:49:51   

Reply

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.

Reply

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  :(

Reply

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 .. :pt1cable: )

Reply

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 ...
 


---------------
...oups kernel error...
Reply

Marsh Posté le 13-07-2003 à 12:38:19    

Ah, piste intéressante par contre ca ne fonctionne pas avec mon type de tableau :cry:
 

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;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed