In what ways can one optimize the process of sorting and nesting pages in a multidimensional array to achieve the desired hierarchical structure in PHP?

To optimize the process of sorting and nesting pages in a multidimensional array in PHP to achieve the desired hierarchical structure, one can use recursive functions to traverse the array and rearrange the elements based on their parent-child relationships. By properly sorting and nesting the pages, we can create a hierarchical structure that reflects the desired order.

function buildHierarchy(array $pages, $parentId = null) {
    $branch = array();

    foreach ($pages as $page) {
        if ($page['parent_id'] == $parentId) {
            $children = buildHierarchy($pages, $page['id']);
            if ($children) {
                $page['children'] = $children;
            }
            $branch[] = $page;
        }
    }

    return $branch;
}

// Assuming $pages is the multidimensional array containing pages data
$hierarchy = buildHierarchy($pages);

// $hierarchy now contains the pages sorted and nested in the desired hierarchical structure