php 关于递归回调的问题
有一个会员数组 16的上级为13,13的上级为1,17 的上级为13, 找16,17 的关系链,找到1为止,想到一个递归的方法,但是实现起来达不到理想的效果,大家有更好的方法吗?,数组大小长短是不确定的
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
)
*/
...全文
相关推荐
浅析PHP递归函数返回值使用方法
浅析PHP递归函数返回值使用方法,需要的朋友可以参考一下
PHP高级进阶:突破编程边界,开启技术新征程
本文聚焦 PHP 高级进阶知识,深入剖析高级函数,包括回调函数在数组排序等场景的应用及递归函数优化技巧;探讨面向对象编程深化内容,如抽象类、接口及设计模式的实现;讲解数据库交互高级技术,像连接池使用与事务处理;还涉及性能优化、调试及实战案例分析。旨在助力开发者突破编程边界,提升 PHP 技术水平,适应大型项目开发需求。
php递归调用删除数组空值元素的方法
主要介绍了php递归调用删除数组空值元素的方法,涉及php递归调用操作数组的相关技巧,非常具有实用价值,需要的朋友可以参考下
php实现多维数组中每个单元值(数字)翻倍的方法
主要介绍了php实现多维数组中每个单元值(数字)翻倍的方法,涉及php操作数组的技巧,需要的朋友可以参考下
php基本函数汇总
本文给大家汇总了16个常见的php基本函数,涵盖的面很广,这里推荐给大家,希望对大家学习php能够有所帮助。


基础编程
