REcherche aide pour tri multi critère, multi dimensions.

Eléphanteau du PHP | 47 Messages

21 juin 2006, 16:33

Bonjour j'ai un petit soucis que je n'arrive pas à résoudre.

J'ai des données que je doit trier avec 2 critères,
je m'expliqué :

$ar0 = array('num'=>'1255','km'=>'50','prix'=>'54000');
$ar1 = array('num'=>'1256','km'=>'20','prix'=>'21000');
$ar2 = array('num'=>'1258','km'=>'90','prix'=>'110000');

Avec ça j'ai besoin de trier pour avoir les tableaux dans l'ordre suivant :
km mini->maxi et prix mini->maxi.

Comment puis je faire ça ?

Merci pour votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 juin 2006, 17:08

Peut-être en utilisant les fonctions natives de PHP sur le tableaux ?
http://fr2.php.net/manual/fr/function.a ... tisort.php
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 1380 Messages

21 juin 2006, 17:11

Tu dois d'abord commencer à mettre tes données dans un tableau à deux dimensions:
$ar[0] = array('num'=>'1255','km'=>'50','prix'=>'54000');
$ar[1] = array('num'=>'1256','km'=>'20','prix'=>'21000');
$ar[2] = array('num'=>'1258','km'=>'90','prix'=>'12000');
$ar[3] = array('num'=>'1258','km'=>'90','prix'=>'11000');
Pour trier, il y a deux possibilités. Avec usort() ou array_multisort()

J'ai une préférence pour la deuxième pour des raisons de lisibilité et de performance.

Pour la question que tu poses:
// construction des clés de tri
foreach($ar as $k=>$v){
  $km[$k] = $v['km'];
  $prix[$k] = $v['prix'];
}
// tri
array_multisort($km, SORT_ASC, $prix, SORT_ASC, $ar);

ripat

Eléphanteau du PHP | 47 Messages

21 juin 2006, 17:33

Super ça marche, j'avais trouver cette fonction mais je n'arrivais pas à l'appliqué et la c'est nickel marci bc pour votre aide...

topic fermé.