Pull your data out then sort in PHP using a usort()
like so:
// test data
$raw[] = array('rating' => 'Baa1', 'cn'=>'Some text Baa1');
$raw[] = array('rating' => 'Aaa', 'cn'=>'Some text Aaa');
$raw[] = array('rating' => 'A1', 'cn'=>'Some text A1');
$raw[] = array('rating' => 'Aa2', 'cn'=>'Some text Aa2');
// Assume PHP 5.3.x or newer
usort($raw,function($a,$b){
// This is the order that you want the results sorted
$rOrder = array('Aaa'=>1, 'Aa1'=>2, 'Aa2'=>3, 'Aa3'=>4,
'A1'=>5, 'A2'=>6, 'A3'=>7, 'Baa1'=>8,
'Baa2'=>9, 'Baa3'=>10);
return $rOrder[$a['rating']] - $rOrder[$b['rating']];
});
Result should be:
array(4) {
[0]=>
array(2) {
["rating"]=> string(3) "Aaa"
["cn"]=> string(13) "Some text Aaa"
}
[1]=>
array(2) {
["rating"]=> string(3) "Aa2"
["cn"]=> string(13) "Some text Aa2"
}
[2]=>
array(2) {
["rating"]=> string(2) "A1"
["cn"]=> string(12) "Some text A1"
}
[3]=>
array(2) {
["rating"]=> string(4) "Baa1"
["cn"]=> string(14) "Some text Baa1"
}
}