Например, у нас есть какой то набор данных, в stdClass. Он многомерный, и его надо сортировать, например по дате.
Делаем первое
array_walk_recursive($t, function(&$t) {return $t->date=strtotime($t->Created);});
Здесь мы создаем дополнительный элемент, к каждому набору записи, в которую записываем unix timestamp для сравнения.
Далее, сортируем набор данных по полю date
usort($t, function($a, $b){ return ($b->date - $a->date); });
Не знаю, насколько это быстрее foreach или for, пока у меня не было несколько миллиардов записей, а до 1000 записей, существенной разницы не увидим.
Для более сложной сортировки, лучше использовать array_multisort, но это уже только для массива, хотя stdClass позволяет работать как с массивом.
Сортировка в алфавитном порядке
usort($arr, function($a, $b){
return strnatcmp($a['name'] , $b['name'] );
});