How can the use of unique IDs and parent IDs improve the structure and performance of PHP arrays in hierarchical data?

Using unique IDs and parent IDs in hierarchical data allows for a more efficient way to organize and access data within PHP arrays. By uniquely identifying each element and specifying its parent element, we can easily traverse the hierarchy and retrieve specific data without having to iterate through the entire array. This approach improves the structure and performance of PHP arrays when dealing with complex hierarchical data structures.

$data = [
    ['id' => 1, 'name' => 'Parent 1', 'parent_id' => null],
    ['id' => 2, 'name' => 'Child 1', 'parent_id' => 1],
    ['id' => 3, 'name' => 'Child 2', 'parent_id' => 1],
    ['id' => 4, 'name' => 'Grandchild 1', 'parent_id' => 2],
    ['id' => 5, 'name' => 'Grandchild 2', 'parent_id' => 2]
];

function buildHierarchy(array $elements, $parentId = null) {
    $branch = [];

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

    return $branch;
}

$hierarchy = buildHierarchy($data);
print_r($hierarchy);