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;
    }
  • 相关阅读:
    8 网站用户密码保存
    10 XSRF和XSS
    评分预测
    社会化推荐
    借助上下文信息
    UGC
    冷启动
    Git秘籍:在 Git 中进行版本回退
    Google在三大系统上停止对Chrome Apps的支持
    Windows 的 AD 域寄生于 Linux 机器
  • 原文地址:https://www.cnblogs.com/qhorse/p/4837246.html
Copyright © 2011-2022 走看看