PHP生成随机中文姓名 阿星小栈

PHP生成随机中文姓名 

//随机生成用户名
     public function generateName(){
         $arrXing = $this->getXingList();
         $numbXing = count($arrXing);
         $arrMing = $this->getMingList();
         $numbMing =  count($arrMing);

         $Xing = $arrXing[mt_rand(0,$numbXing-1)];
         $Ming = $arrMing[mt_rand(0,$numbMing-1)].$arrMing[mt_rand(0,$numbMing-1)];

         $name = $Xing.$Ming;

         return $name;

     }
//获取姓氏 
public function getXingList(){ $arrXing=array('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','','','','','','','','','','','','','','','怀','','','','','','','','','','','','','','','','','','','','', '','','','','','','寿','','','','','','','','','','','','','','','','','','','','','','','','','','','','','', '','广','','','','','','','','','','','司马','上官','欧阳','夏侯','诸葛','闻人','东方','赫连','皇甫','尉迟','公羊','澹台','公冶','宗政','濮阳','淳于','单于','太叔', '申屠','公孙','仲孙','轩辕','令狐','徐离','宇文','长孙','慕容','司徒','司空'); return $arrXing; } //获取名字 public function getMingList(){ $arrMing=array('','','','','','','','','','','','','','','','','','','广','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','','鸿','','','','','','','','','','','','','','','','','','','','','','' ,'','','','','','','','','','','','','','绿','','','',''); return $arrMing; }
  public function nameInDatabase($num = 100){
         $nameArray = [];
         for ($i=0;$i<$num;$i++){
             $nameArray[] = $this->generateName();
         }
         $nameArrayNew = array_unique($nameArray);
         $countNew = count($nameArray);
         $countRep = $num - $countNew;
         $numSuccess = 0;
         foreach ($nameArrayNew as $k=>$v){
             $res = TempUser::create(['name'=>$v]);
             if($res){
                 $numSuccess++;
             }
             echo $k+1;
         }
         echo "共生成".$num."条,去重".$countRep."条,导入成功".$numSuccess."";
     }

//调用方法生成名字并存到数据库,这里默认生成100个名字,数量可自定义

$this->nameInDatabase(3000);      
原文地址:https://www.cnblogs.com/dereckbu/p/8435158.html