zoukankan      html  css  js  c++  java
  • PHP常用算法

    //二维数组的按某字段来排序(从小到大排序)
     function number_array_sort_asc($array,$key_name){
         $arr = array();
         foreach ($array as $k) {
             $arr[] = $k[$key_name];
         }
         array_multisort($arr, SORT_ASC, $array);
        return $array;
    }
    //二维数组的按某字段来排序(从大到小排序)
     function number_array_sort_desc($array,$key_name){
         $arr = array();
         foreach ($array as $k) {
             $arr[] = $k[$key_name];
         }
         array_multisort($arr, SORT_DESC, $array);
         return $array;
    }
    //递归获取父元素列表(静态变量方法)
    function getParentEnum($id)
    {
        static $arr = [];
        array_unshift($arr, $id);   //从数组头部压入一个元素
        $pid = Db::name('basic_enum')->where('id', $id)->value('pid');   //tp5 数据库查询
        if ($pid) {
            getParentEnum($pid);
        }
        return $arr;
    }
            
    getParentEnum($id);    

    //使用静态变量方法有个弊端,不能批量操作,静态变量中的数组会一直累加,不能置空,这时候需要使用全局变量方法
    //递归获取父元素列表(全局变量方法)
    function getParentEnum($id)
    {
        array_unshift($GLOBALS['arr'], $id);
        $pid = Db::name('basic_enum')->where('id', $id)->value('pid');   //tp5 数据库查询
        if ($pid) {
            getParentEnum($pid);
        }
        return $GLOBALS['arr'];
    }
            
    $GLOBALS['arr'] = [];
    getParentEnum($id);
    //递归获取父元素列表(引用 方法)
    function getParentEnum($id, &$_res=[])
    {
        array_unshift($_res, $id);
        $pid = Db::name('basic_enum')->where('id', $id)->value('pid');   //tp5 数据库查询
        if ($pid) {
            getParentEnum($pid, $_res);
        }
        return $_res;
    }
            
    getParentEnum($id);
    //递归获取子元素列表
    function getChildEnum($id, &$_res=[])
    {
        $ids = is_array($id) ? $id : [$id];
        $_res = empty($_res) ? $ids : array_merge($_res,$ids);
        $list = Db::name('basic_enum')->where('pid','in',$id)->column('id');
        if (!empty($list)){
            $this->getChildCateId($list, $_res);
        }
        return $_res;
    }
    
    getChildEnum($id);
  • 相关阅读:
    Maven使用教程
    [转载]DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
    ASP.NET MVC 开篇
    基于WebForm+EasyUI的业务管理系统形成之旅 -- ParamQueryGrid行、列合并(Ⅸ)
    基于WebForm+EasyUI的业务管理系统形成之旅 -- 施工计划查询(Ⅷ)
    浅析WCF与WebService、WPF与Silverlight 区别
    LeetCode-3Sum Smaller
    LeetCode-Different Ways to Add Parentheses
    LeetCode-Count Univalue Subtrees
    LeetCode-Decode String
  • 原文地址:https://www.cnblogs.com/dreamydeng/p/5714714.html
Copyright © 2011-2022 走看看