给我用php写一个随机姓名生成器
以下是基于PHP的随机姓名生成器代码:
<?php
class RandomNameGenerator {
private $surnames = [
'张', '李', '王', '刘', '陈', '杨', '赵', '黄', '周', '吴',
'徐', '孙', '胡', '朱', '高', '林', '何', '郭', '马', '罗',
'郑', '梁', '谢', '宋', '唐', '许', '韩', '冯', '邓', '曹'
];
private $givenNames = [
'伟', '芳', '娜', '秀英', '敏', '静', '丽', '强', '磊', '军',
'洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '秀兰', '霞',
'平', '刚', '桂英', '华', '金凤', '文', '兰', '红', '志强', '桂兰',
'玉', '鹏', '丹', '桂芳', '建国', '建华', '淑华', '秀珍', '海燕', '晨'
];
/**
* 生成随机姓名
* @param int $count 生成数量,默认为1
* @return array|string 返回姓名数组或单个姓名
*/
public function generate($count = 1) {
$names = [];
for ($i = 0; $i < $count; $i++) {
$surname = $this->surnames[array_rand($this->surnames)];
$givenName = $this->givenNames[array_rand($this->givenNames)];
$names[] = $surname . $givenName;
}
return $count === 1 ? $names[0] : $names;
}
/**
* 添加自定义姓氏
* @param array $newSurnames 新姓氏数组
*/
public function addSurnames(array $newSurnames) {
$this->surnames = array_merge($this->surnames, $newSurnames);
}
/**
* 添加自定义名字
* @param array $newGivenNames 新名字数组
*/
public function addGivenNames(array $newGivenNames) {
$this->givenNames = array_merge($this->givenNames, $newGivenNames);
}
/**
* 获取当前姓氏列表
* @return array
*/
public function getSurnames() {
return $this->surnames;
}
/**
* 获取当前名字列表
* @return array
*/
public function getGivenNames() {
return $this->givenNames;
}
}
// 使用示例
$generator = new RandomNameGenerator();
// 生成单个随机姓名
echo "单个姓名: " . $generator->generate() . "\n";
// 生成多个随机姓名
echo "多个姓名: \n";
$multipleNames = $generator->generate(5);
foreach ($multipleNames as $name) {
echo "- $name\n";
}
// 添加自定义数据并生成
$generator->addSurnames(['欧阳', '司马', '上官']);
$generator->addGivenNames(['子轩', '雨泽', '浩然']);
echo "\n添加复姓后的姓名: " . $generator->generate() . "\n";
?>
代码说明:
-
核心功能:
generate()方法:从预设的姓氏和名字数组中随机组合生成姓名- 支持生成单个或多个姓名
- 使用
array_rand()函数实现随机选择
-
可扩展性:
addSurnames()和addGivenNames()方法允许动态添加新的姓氏和名字- 默认包含30个常见姓氏和40个常见名字
-
使用方式:
- 创建
RandomNameGenerator实例 - 调用
generate()方法生成姓名 - 可传入参数指定生成数量
- 创建
-
输出示例:
单个姓名: 王伟 多个姓名: - 李芳 - 刘磊 - 陈敏 - 杨静 - 赵强 添加复姓后的姓名: 欧阳浩然
这个生成器可根据需要轻松扩展姓氏和名字库,满足不同的随机姓名生成需求。
所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。

评论 (0)