Имеем массив, составленный следующим образом:
$parts=array();
foreach($arr as $item){
$parts[]=array(
'name'=>$item['name'],
'manufacturer'=>$item['maker'],
'amount'=>$item['quantity'],
'price'=>$item['price'],
'term'=>$item['days'],
'code'=>$item['orderreference'],
);
}
Для сортировки по одному из ключей:
if(isset($_GET['order'])){
foreach($parts as $k=>$v){
$t_price[$k]=$v['price'];
$t_amount[$k]=$v['amount'];
$t_term[$k]=$v['term'];
}
switch($_GET['order']){
case 'price':
array_multisort($t_price,SORT_ASC,$parts);
break;
case 'amount':
array_multisort($t_amount,SORT_ASC,$parts);
break;
case 'term':
array_multisort($t_term,SORT_ASC,$parts);
break;
}
}
От меньшего к большему и от большего к меньшему:
if(isset($_GET['sort'])){
foreach($parts as $k=>$v){
$t_price[$k]=$v['price'];
$t_amount[$k]=$v['amount'];
$t_term[$k]=$v['term'];
}
$order=($_GET['order']=='desc')?SORT_DESC:SORT_ASC;
switch($_GET['sort']){
case 'price':
array_multisort($t_price,$order,$parts);
break;
case 'amount':
array_multisort($t_amount,$order,$parts);
break;
case 'term':
array_multisort($t_term,$order,$parts);
break;
}
}