php生成指定位数不重复的字母数字组合存到数据库
web PHP 2020-11-11 47 0
关于本站

淘淘IT

记录工作学习中的点点滴滴

本站创建于2017年,用于记录工作和学习中遇到的问题。同时,不断提升网站的使用体验,增加新的功能。

910793 1283 12
最新评论
感谢大佬解决了我的问题
评 留言
11111111111111111111ewqr :ku:
评 留言
@xiaoniba 好像是编码GBK和utf-8的区别,请看下我摘抄的一篇文章,里面有介绍http://taotaoit.com/article/details/885.html,你可以尝试下是否可以
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
\x7f-\xff 这个匹配什么东东,会不会出现安全问题??? 改成这样如何 if ($strict && !preg_match('/^[\w\.\*\x{4e00}-\x{9fa5}]+$/u', $key)) {
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
完美解决 牛逼
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
文章标签更多
ThinkPHP (124)
Mysql (28)
DedeCms (30)
jQuery (28)
证件照 (1)
setInc (3)
setDec (3)
onclick (3)
打开边栏(ESC) 关闭边栏(ESC)

thinkphp批量插入数据库

public function adduserrandaccount()
    {
      $str = "abcdefghijklmnopqrstuvwxyz0123456789";
      $source = str_split($str);
      $arr = getRandomString($source,4); // 数字为3,生成46656组合;数字为4,生成1679616组合,但是数据量大插入数据库会卡死
      shuffle($arr); // 打乱数组下标
      $arr_sum = array_chunk($arr,5000); // 按10000再将arr拆成二维数组
      // echo '开始:' . date('Y-m-d h:i:s',time()) . '<br>';        
      foreach ($arr_sum as $k=>$v) {
        $add_data = [];
        foreach ($v as $v2) {  
          $add_data[] = ['account' => $v2];
        }
        $this->modelUserrandaccount->setList($add_data);
        // echo $k . ',' . date('Y-m-d h:i:s',time()) . '<br>';
      }
      // echo '结束:' . date('Y-m-d h:i:s',time()) . '<br>';
      // echo '添加完成';

    }

组合函数

/**
 * $source 字符数组
 * $len 生成随机字符串长度
 * $list 返回随机字符串数组
 */
function getRandomString($source, $len, $pos = 0, &$list = []) {
  static $bit = [];
  $pos++;
  for($i = 0; $i < count($source); $i++) {
    $bit[$pos] = $source[$i];
    
    if($pos < $len){      
      getRandomString($source, $len, $pos, $list);
    }else{
      $list[] = implode('', $bit);
    }    
  }
  return $list;
}

参考网址

https://www.jb51.net/article/163676.htm

https://blog.csdn.net/liuxin_0725/article/details/53910738


版权声明:本篇文章来源于网络。 来源链接

相关推荐
openssl_private_decrypt解密失败
PHP | 2019-01-16 2154
复制别人的解密程序,原程序可以解密,复制过来就不可以 一步步尝试发现,秘钥换行符有区别, 原秘钥有换行符,复制过来不知道什么时候把换行符清空了,成了一行字符串了。
那三个特殊字符的ascii码239,187,191就是BOM头的 EF BB BF
PHP | 2019-01-24 1762
原问题 字符串长度问题 vardump打印一字符串 string(14) "00107042012" 获取到的字符串长度怎么是14 明明是11个数字啊! 为什么? 回答: 你的字符串有前有三个特殊字符(+BOM) <?php $str = '00107042012'; $str1 = '0010...
评论:0条
评论加载中...
发表评论