php özyineleme düzeyi

0 Cevap php

Ben özyineleme işlevi var. Bir hiyerarşi kullanıcılar yapısı vardır. Benim işlevi bir kullanıcı kimliği göndermek ve bu kapsamındaki tüm kullanıcıyı bulmak gerekir. Fonksiyon tüm ortakları kullanıcıların bir dizi döndürür. Benim görev bu kullanıcıların bir düzeylerini bulmak.

Örneğin:

        User1
       /    \
    User2   User3
   /    \    \ 
User4 User5  User6

User1 have level 0. User2, User3 have level 1. User4, User5, User6 have level 2. How can I find this in my recursion? It is my code:

private function getAssociates($userId) {
    global $generation;
    global $usersUnder;
    if (!isset($generation)) {
        $generation = 1;
    }
    $userDb           =  new Lyf_DB_Table('user');
    $associatesSelect =  $userDb->Select();
    $associatesSelect -> from('user', array('id'))->where('enroller_id = ?', $userId);
    $associates       =  $userDb->fetchAll($associatesSelect)->toArray();
    if (!empty($associates)) {
        foreach ($associates as $associate) {
            $usersUnder[$generation] = $associate['id'];
            $this->getAssociates($associate['id']);
        }
    }
    return $usersUnder;
}

0 Cevap