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

When working with hierarchical data in PHP arrays, it is important to properly organize and sort the data to ensure efficient access and manipulation. One common approach is to use recursive functions to traverse the nested arrays and apply sorting criteria at each level. By implementing a recursive sorting algorithm, you can easily organize the hierarchical data based on specific keys or values.

function sortHierarchicalData(array &$data, $key) {
    usort($data, function($a, $b) use ($key) {
        return $a[$key] <=> $b[$key];
    });

    foreach ($data as &$subData) {
        if (isset($subData['children'])) {
            sortHierarchicalData($subData['children'], $key);
        }
    }
}

// Example usage
$data = [
    ['id' => 1, 'name' => 'Parent 1', 'children' => [
        ['id' => 4, 'name' => 'Child 1'],
        ['id' => 3, 'name' => 'Child 2'],
        ['id' => 2, 'name' => 'Child 3']
    ]],
    ['id' => 5, 'name' => 'Parent 2', 'children' => [
        ['id' => 7, 'name' => 'Child 4'],
        ['id' => 6, 'name' => 'Child 5']
    ]]
];

sortHierarchicalData($data, 'id');

print_r($data);