给我用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";
?>

代码说明:

  1. 核心功能

    • generate() 方法:从预设的姓氏和名字数组中随机组合生成姓名
    • 支持生成单个或多个姓名
    • 使用 array_rand() 函数实现随机选择
  2. 可扩展性

    • addSurnames()addGivenNames() 方法允许动态添加新的姓氏和名字
    • 默认包含30个常见姓氏和40个常见名字
  3. 使用方式

    • 创建 RandomNameGenerator 实例
    • 调用 generate() 方法生成姓名
    • 可传入参数指定生成数量
  4. 输出示例

    单个姓名: 王伟
    多个姓名: 
    - 李芳
    - 刘磊
    - 陈敏
    - 杨静
    - 赵强
    
    添加复姓后的姓名: 欧阳浩然

这个生成器可根据需要轻松扩展姓氏和名字库,满足不同的随机姓名生成需求。

所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。
😀
🤣
😁
😍
😭
😂
👍
😃
😄
😅
🙏
🤪
😏

评论 (0)