zoukankan      html  css  js  c++  java
  • PHP 生成随机数组

    /** 生成指定个数,以及最小最大值随机数组(包括最大值)
     * @parem $min 随机数组最小值
     * @parem $max 随机数组最大值
     * @parem $num 随机数组个数,默认max-min
     * @parem $order 排序方式,false不排序,ture默认 由低到高-->asort()
     * */
    function unique_rand($min,$max,$num=0,$order=false)
    {
        // 转为 int 类型
        $min=gettype($min)=='int'?$min:intval($min);
        $max=gettype($max)=='int'?$max:intval($max);
    
        // 如果参数写反
        if($max<=$min)
        {
          $max=$max+$min;
          $min=$max-$min;
        }
    
        $num=gettype($num)=='int'?$num:intval($num);
        $max_num=$max-$min; // 最大数组个数
        if($num<1 || $num>$max_num)  //随机数组个数,默认max-min
        {
            $num=$max_num;
        }
    
        //生成随机数组
        $return = array();
    
        $i=0;
        while(count($return)<$num)
        {
            $i++;
            $rand_n=rand($min,$max);
            $return[$rand_n]=$i;
        }
        $return=array_flip($return);
    
        // 数组排序
        if(isset($order))
        {
            $order=strtolower($order);
            switch($order)
            {
                case 'asort':   //由低到高 ,键值关联的保持
                case 'arsort':  //由高到低 ,键值关联的保持
                case 'sort':    //由低到高
                case 'rsort':   //由高到低
                    $order($return);
                    break;
                default:
                    sort($return); //由低到高
                    break;
            }
        }
        return $return;
    }
    // 测试调用
    $arr=unique_rand(10,132,8);
    echo "<pre>";
    var_dump($arr);
  • 相关阅读:
    md笔记——HTTP知识
    百万表格难题
    微信接口改良
    md笔记——正则学习
    md笔记——编程术语
    md笔记——微信JS接口
    md笔记——使用 @font-face 引入你喜欢的字体
    博客一年记
    “挨踢”的伙食怎样?
    比尔·盖茨早年
  • 原文地址:https://www.cnblogs.com/xuey/p/8051659.html
Copyright © 2011-2022 走看看