What are the best practices for querying and displaying referral data in different levels using PHP?

When querying and displaying referral data in different levels using PHP, it is important to organize the data in a hierarchical structure to easily display it at different levels. One approach is to use a recursive function to query the data and then display it in a nested format, such as a tree or a list. This allows for easy navigation and understanding of the referral relationships.

<?php
// Function to recursively display referral data in a nested format
function displayReferralData($referrals, $parent_id = 0, $level = 0) {
    foreach ($referrals as $referral) {
        if ($referral['parent_id'] == $parent_id) {
            echo str_repeat('-', $level) . $referral['name'] . "<br>";
            displayReferralData($referrals, $referral['id'], $level + 1);
        }
    }
}

// Example referral data
$referrals = [
    ['id' => 1, 'name' => 'Alice', 'parent_id' => 0],
    ['id' => 2, 'name' => 'Bob', 'parent_id' => 1],
    ['id' => 3, 'name' => 'Charlie', 'parent_id' => 1],
    ['id' => 4, 'name' => 'David', 'parent_id' => 2],
    ['id' => 5, 'name' => 'Eve', 'parent_id' => 2],
];

// Display referral data
displayReferralData($referrals);
?>