How can PHP arrays be effectively sorted to achieve a specific hierarchical structure, like the one described in the forum thread?

To achieve a specific hierarchical structure in PHP arrays, you can use a combination of sorting functions like `usort` or `uasort` along with custom comparison functions. By defining a comparison function that sorts the elements based on their parent-child relationships, you can effectively organize the array in the desired hierarchy.

// Sample array structure
$data = [
    ['id' => 1, 'parent_id' => 0, 'name' => 'Parent 1'],
    ['id' => 2, 'parent_id' => 1, 'name' => 'Child 1'],
    ['id' => 3, 'parent_id' => 0, 'name' => 'Parent 2'],
    ['id' => 4, 'parent_id' => 1, 'name' => 'Child 2'],
];

// Custom comparison function for sorting
function customSort($a, $b) {
    if ($a['parent_id'] == $b['id']) {
        return -1;
    } elseif ($b['parent_id'] == $a['id']) {
        return 1;
    } else {
        return 0;
    }
}

// Sort the array using custom comparison function
usort($data, 'customSort');

// Output the sorted array
print_r($data);