日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

订单编号,递增且不连续(php版)

發布時間:2023/12/19 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 订单编号,递增且不连续(php版) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、實現方式,使用while循環,比較low,200w條數據 2s

public function getMany ($startNum, $count) {$num = $startNum;$codes[] = $startNum;for($i=1;$i<=$count;$i++){$num1 = random_int(1,9);while($num == $num1) {$num1 = random_int(1,9);}$num = $num1;$startNum += $num;$codes[] = $startNum;}return $codes; }

2、實現方式,使用遞歸,把random_int替換成mt_rand,200w數據0.9s

public function getManys ($num, $count) {$codes = [];$startNum = 0;for($i = 1;$i <= $count; $i++){$num = $this->getNotRepeatNum($num, mt_rand(1, 9));$startNum += $num;$codes[] = $startNum;}return $codes; }public function getNotRepeatNum($startNum, $endNum) {if($startNum == $endNum) {return $this->getNotRepeatNum($startNum, mt_rand(1, 9));}return $endNum; }

3、實現方式,上次使用的數據下次不使用,把random_int替換成mt_rand,200w數據0.7s

public function getManys ($startNum, $count) {$codes = [];$num = [1,2,3,4,5,6,7,8,9];$lastNum = 0;for($i=1;$i<=$count;$i++){if($lastNum == 0) {$startNum += $num[mt_rand(0, 8)];} else {$diff = array_diff($num, [$lastNum]);$startNum += $diff[mt_rand(0, 7)];}$codes[] = $startNum;}return $codes; }

總結

以上是生活随笔為你收集整理的订单编号,递增且不连续(php版)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。