所以我正在研究referall系统,
假设有一个名为User A的父母。用户A邀请2个用户,用户B和C.
然后用户B邀请用户B1和B2,然后用户C邀请C1和C2。
等等。
该级别定义受邀用户的“批次”。
我只能找到第一级总项目。这是我的代码(我正在使用CI)
$user_children = $this->_model->all(' AND referral_id = '.$id);
if(count($user_children) > 0){
foreach($user_children as $child){
array_push($users,$child);
}
}
我无法遍历孙子孙女。
如何编写一个能够返回每个级别购买的总项目的函数?已经处理了很长一段时间。有人能帮助我吗?谢谢你:))
答案 0 :(得分:0)
您可以构建一个递归函数来计算您的值:
function calc_level($id,$level_array){
$user_children = $this->_model->all(' AND referral_id = '.$id);
if(count($user_children) > 0){
foreach($user_children as $child){
$level_array[$child->id] = $level_array[$child->id] + $child->items_bought;
$level_array = calc_level($child->id,$level_array);
}
}
return $level_array;
}
假设' id '和' items_bought '是数据库列的名称。
并且这样打电话:
$level_array = array();
$level_array = calc_level('id_of_first_level',$level_array);
它将返回一个数组,其中您的等级ID为索引,总数为值。
我不确定这是否是在CI中实施的正确方法。