有时候需要从数组中找出其父Id或子id,自己写了一下
/**
* 递归从数组中找出其下son的ids
*
* @param array $arr
* @param $idName
* @param $idFieldValue
* @param $parentIdName
* @return array
*/
function getChildIds($arr, $idName, $idFieldValue, $parentIdName)
{
static $map = [];
foreach ($arr as $item) {
if ($item[$parentIdName] == $idFieldValue) {
$map[] = $item[$idName];
getChildIds($arr, $idName, $item[$idName], $parentIdName);
}
}
return array_unique($map);
}
/**
* 递归从数组中找出其上父类的ids
*
* @param array $arr
* @param $idName
* @param $idFieldValue
* @param $parentIdName
* @return array
*/
function getFatherIds($arr, $idName, $idFieldValue, $parentIdName)
{
if (empty($arr)) {
return [];
}
static $map = [];
foreach ($arr as $k => $item) {
if (($item[$idName] == $idFieldValue) && ($item[$parentIdName] > 0)) {
$map[] = $item[$parentIdName];
getFatherIds($arr, $idName, $item[$parentIdName], $parentIdName);
}
}
return array_unique($map);
}
- 相关文章
- phpexcel设置行高及列宽,背景颜色,
- 单点登录sso原理及php实现方式及de
- 在php中用curl请求java接口无法获
- 免费ip地址查询接口
- php,java,android, aes加解密-加密
- 地图上计算两点间的距离
- 关于百度地图的一些技巧
- php中empty,is_null,isset的区别
- windows及linux下composer安装教程
- 一种精妙的数据查询与存储方式
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- centos7.4 64位下swoole安装及配置
- laravel页面静态化的方法
- navicate连接mycat报1184错误
- 单点登录sso原理及php实现方式及de
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:610篇
- 浏览数:953068