Page 1 sur 1

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

Posté : 21 juin 2006, 16:33
par blubsy
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

Posté : 21 juin 2006, 17:08
par mere-teresa
Peut-être en utilisant les fonctions natives de PHP sur le tableaux ?
http://fr2.php.net/manual/fr/function.a ... tisort.php

Posté : 21 juin 2006, 17:11
par Ripat
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);


Posté : 21 juin 2006, 17:33
par blubsy
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é.