What are some best practices for organizing hierarchical data in PHP?

Organizing hierarchical data in PHP can be efficiently done using recursive functions. By recursively traversing the data structure, you can easily handle nested levels of data. It is important to properly structure your data in a way that makes it easy to traverse and manipulate.

function displayHierarchy($data, $parent_id = 0, $level = 0) {
    foreach ($data as $item) {
        if ($item['parent_id'] == $parent_id) {
            echo str_repeat('-', $level) . $item['name'] . "\n";
            displayHierarchy($data, $item['id'], $level + 1);
        }
    }
}

// Example usage
$data = [
    ['id' => 1, 'name' => 'Parent 1', 'parent_id' => 0],
    ['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' => 'Parent 2', 'parent_id' => 0],
];

displayHierarchy($data);