21,887
社区成员
发帖
与我相关
我的任务
分享
error_reporting(0);
//会员递归得到层级关系
function user_tier($arr,$k){
static $return_arr;
if($arr[$k]!=1){
$return_arr[$k] = $arr[$k];
user_tier($arr,$arr[$k]);
}else{
$return_arr[$k] = $arr[$k];
}
return $return_arr;
}
$test = array(
array('id'=>16,'pid'=>13),
array('id'=>13,'pid'=>1),
array('id'=>17,'pid'=>13)
);
$test3 = array();
foreach($test as $k=>$v){
$test3[$v['id']] = $v['pid'];
}
$test2 = array(16,17);
foreach($test2 as $k=>$v){
$guanxi[] = user_tier($test3,$v);
}
/*
得到效果如下
[0] => Array
(
[16] => 13
[13] => 1
)
[1] => Array
(
[16] => 13
[13] => 1
[17] => 13
)
目标效果
[0] => Array
(
[16] => 13
[13] => 1
)
[1] => Array
(
[17] => 13
[13] => 1
)
*/
//递归找到上级
function user_tier2($arr,$val,$myarr){
$p_id = $arr[$val];
$myarr[$val] = $p_id;
if($p_id == 1){
return $myarr;
}else{
return user_tier2($arr,$p_id,$myarr);
}
}