• 封装获取连续数字的拼接


        /*
         * 获取连续数字拼接
         * $arr = array(
                'dev' => array(1, 2, 3, 4, 10, 20, 21, 22),
                'dev2' => array(1, 2, 3, 50),
                'dev3' => array(1)
            );
        *结果:    
            [dev] => devs1-2
            [dev2] => dev2s1
        */
        public function getContinuouStr($arr){
            $ret = array();
            foreach ($arr as $agent => $server_arr) {
                $count = count($server_arr);    //个数
                $start = $server_arr[0];    //连续段的起始值
                $pre = $start;  //上一个数
                $_ret = array();
                $_ret = array($start => 0);
                for($i = 1; $i < $count; $i ++) {
                    $cur = $server_arr[$i];
                    if($cur - $pre == 1) {  //是连续
                        $_ret[$start] = $cur;
                    } else {    //不连续
                        $start = $cur;
                        $_ret[$start] = 0;
                    }
                    $pre = $cur;
                }
                $ret[$agent] = $_ret;
            } 
    
            $ret2 = array();
            foreach ($ret as $agent => $server_arr) {
                $str = '';
                foreach ($server_arr as $k => $val) {
                    if($val > 0) {
                        $str .= $agent . 's' . $k . '-' . $val . '&';
                    } else {
                        $str .= $agent . 's' . $k . '&';
                    }
                }
                $str = rtrim($str, '&');
                $ret2[$agent] = $str;
            } 
            return $ret2;
        }
  • 相关阅读:
    Servlet 规范 简介
    Redis简介
    some tips
    初识Servlet
    JVM基础知识
    使用typora编辑博客
    航海が始まる日
    比较好的IT教程网
    vue 使用心得---工作中一些关键点
    Vue父组件主动获取子组件的数据和方法
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/8305156.html
Copyright © 2020-2023  润新知