Сортировка многомерного массива с помощью функции usort

Следующая функция usort не всегда дает правильный результат, поскольку она будет только «нажимать» вверх или вниз по одной позиции относительно сравниваемого элемента. Таким образом, при выполнении сортировки несколько раз результат Yes No Yes No .

Функция успешно сортирует поле b.

Как я могу это решить?

массив

 [0] => array("a"=>"Yes","b"=>"apple"...); [1] => array("a"=>"Yes","b"=>"banana"...); [2] => array("a"=>"No","b"=>"lemon"...); [3] => array("a"=>"No","b"=>"grape"...); ... 

текущая функция

 function sortAnserDesc($x, $y){ if ( $x['a'] == $y['a'] ) return 0; else if ( $x['a'] < $y['a'] ) return 1; else return -1; }