zoukankan      html  css  js  c++  java
  • 递归获取二维数组后代、删除后代

    
    

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

    /**
     * 获取后代
     * @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;
    }
  • 相关阅读:
    入侵特斯拉——智能汽车安全性分析
    D-Link系列路由器漏洞挖掘入门
    工控安全入门之 Ethernet/IP
    浅谈JS数据类型存储问题
    【备忘】12306购票必杀技
    制作炫酷的专题页面
    杂记(下)
    杂记(上)
    跨域请求解决方案
    好用的表单验证插件
  • 原文地址:https://www.cnblogs.com/qhorse/p/4837246.html
Copyright © 2011-2022 走看看