/** * Recursively sorts a heirarchical tree of data * * @param array $item The item data to be sorted * @param int $parent (internal) The parent item of the current iteration * @param int $key (internal) The identified index of the parent item in the current iteration * @param int $depth (internal) The number of the nested depth in the current iteration * @return array The sorted tree of data * @author Jonathan Davis * @deprecated 1.3 **/ public static function sort_tree($items, $parent = 0, $key = -1, $depth = -1) { $depth++; $position = 1; $result = array(); if ($items) { foreach ($items as $item) { // Preserve initial priority if (isset($item->priority)) { $item->_priority = $item->priority; } if ($item->parent == $parent) { $item->parentkey = $key; $item->depth = $depth; $item->priority = $position++; $result[] = $item; $children = Shopp::sort_tree($items, $item->id, count($result) - 1, $depth); $result = array_merge($result, $children); // Add children in as they are found } } } $depth--; return $result; }