arrays - php recursion level -
i have recursion function. there hierarchy users structure. send user id function , should find user under this. function returns array of associates users. task find levels of users.
for example:
user1 / \ user2 user3 / \ \ user4 user5 user6 user1 have level 0. user2, user3 have level 1. user4, user5, user6 have level 2. how can find in recursion? 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 $associate) { $usersunder[$generation] = $associate['id']; $this->getassociates($associate['id']); } } return $usersunder; }
add parameter getassociates() function:
private function getassociates($userid, $level = 0) { and when you're processing level of tree, store $level rest of user data, recurse function with:
$this->getassociates($associate['id'], $level + 1); and when call function start process, pass in 0 $level, or leave blank , let php assign default (also 0).
Comments
Post a Comment