У меня есть массив, содержащий имена классов и их базовый класс. Структура выглядит так:Сортировка массива на основе структуры наследования классов в PHP
$list[0] = array("class"=>"ckEditor", "base"=>"domTextArea");
$list[1] = array("class"=>"ComboBox", "base"=>"Control");
$list[2] = array("class"=>"Control", "base"=>"");
$list[3] = array("class"=>"domTextArea", "base"=>"Control");
..
... so on up to 50 classes
Проблема в том, что массив не сортируется в терминах структуры наследования. В этом случае класс управления должен быть сверху. Есть ли какая-либо функция в PHP, которая может сортировать эту структуру на основе родительских отношений с дочерними элементами. Полученный массив должен выглядеть следующим образом:
$list[0] = array("class"=>"Control", "base"=>"");
$list[1] = array("class"=>"domTextArea", "base"=>"Control");
$list[2] = array("class"=>"ckEditor", "base"=>"domTextArea");
$list[3] = array("class"=>"ComboBox", "base"=>"Control");
EDIT: Это также будет полезно, если кто-то может предложить алгоритм сортировки такого типа sturcture.
usort() помогает :-) – bwoebi
Вы можете написать пользовательскую функцию для него, стандартные функции не будут знать, что иерархия –