DV
вопрос поставлен не совсем корректно. Какой массив ты собираешь сортировать? Массив в N элементов у которых ключи это, например, порядковые номера, а значения это массивы вида как у $r? Тогда это имеет смысл, т.к. такой массив можно представить в виде простенькой таблицы, используй [m]usort[/m]:
PHP:
function tabsort($a,$b) {return strnatcmp($a["name"], $b["name"]);}
usort($array,"tabsort");
Если же массив array(rub=>$123,name=>$456....) И надо отсортировать таблицу "Key | Value", например "Rub | $123", то:
PHP:
$array = array(
"key1" => "value1",
"key4" => "value2",
"key3" => "value3"
//...
);
$keys = array_keys($array);
natsort($keys);
$newarray = array();
foreach($keys as $v) {$newarray[$v] = $array[$v];}
P.S. я не уверен в том что задачу реализуемую вторым примером нельзя решить оптимальнее, это так просто первое что пришло в голову.