您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

递归获取二维数组后代、删除后代

2025/1/2 11:02:20发布19次查看
递归获取二维数组后代、删除后代。 #数据少的时候还好用 #不晓得非递归代码怎么写,在这里求非递归写法 /** * 获取后代 * @param array $arr 需要操作的二维数组 * @param int $id 需要获取的编号 * @param string $idkey 唯一编号字段 * @param string $pid
递归获取二维数组后代、删除后代。
#数据少的时候还好用
#不晓得非递归代码怎么写,在这里求非递归写法
/** * 获取后代 * @param array $arr 需要操作的二维数组 * @param int $id 需要获取的编号 * @param string $idkey 唯一编号字段 * @param string $pidkey 父编号字段 * @param int $self 是否包含自身 * @return array */function getchilds($arr,$id,$idkey,$pidkey,$self = 0){ $c = array(); foreach ($arr as $k => $value){ if($self && $value[$idkey] == $id){ $c[] = $value; $self = 0; } if($value[$pidkey] == $id){ $c[] = $value; $c = array_merge($c,getchilds($arr,$value[$idkey],$idkey,$pidkey,0)); } } return $c;}/** * 移除后代 * @param array $arr 需要操作的二维数组 * @param int $id 需要移除的编号 * @param string $idkey 唯一编号字段 * @param string $pidkey 父编号字段 * @param int $self 是否移除自身 * @param int $array_values 是否重新索引数组 * @return array */function removechilds($arr,$id,$idkey,$pidkey,$self = 0,$array_values = 0){ $c = getchilds($arr, $id, $idkey, $pidkey,$self); foreach ($c as $o){ foreach ($arr as $k => $v){ if($o[$idkey] == $v[$idkey]){ unset($arr[$k]); break; } } } return $array_values ? array_values($arr) : $arr;}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product