首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建随机的名字和姓氏。多件

创建随机的名字和姓氏。多件
EN

Stack Overflow用户
提问于 2021-08-26 17:34:49
回答 1查看 39关注 0票数 0

我想创建一个脚本。该脚本将自动列出随机的名字和姓氏。有两个数据库表。

第一名: fake_name_id,fake_firstname

Second:fake_name_id,fake_lastname

到目前为止,我做到了以下几点:

控制器文件

代码语言:javascript
复制
$data['lastname'] = array();

$results = $this->getRandomLastNames();
    foreach ($results as $result) {
        $data['lastname'][] = array(
            'lastname'        => $result['lastname'],
        );
    }

$data['fullnames'] = array();
$results = $this->getRandomNames();

    foreach ($results as $result) {
        $data['fullnames'][] = array(
            'firstname'        => $result['firstname'],

        );
    }

模型文件> sql查询名字和姓氏

代码语言:javascript
复制
public function getRandomName($fake_name_id) {
                
        $query = $this->db->query("SELECT DISTINCT *, fake_firstname FROM " . DB_PREFIX . " fakereviews_name WHERE fake_name_id = '" . (int)$fake_name_id . "'");
        
        if ($query->num_rows) {
            return array(
                'fake_name_id'             => $query->row['fake_name_id'],
                'firstname'             => $query->row['fake_firstname'],
            );
        } else {
            return false;
        }
    }
    
    public function getRandomNames($data = array()) {

            $sql = "SELECT * FROM " . DB_PREFIX . "fakereviews_name ORDER BY Rand() ASC LIMIT 0, 20";
            $fake_firstname_data = array(); 
            $query = $this->db->query($sql);
                       
            foreach ($query->rows as $result) {
                
                $fake_firstname_data[$result['fake_name_id']] = $this->getRandomName($result['fake_name_id']);
            }       
        return $fake_firstname_data;
    }   
    
    
    
    
 public function getRandomLastName($fake_name_id) {
                
        $query = $this->db->query("SELECT DISTINCT *, fake_lastname FROM " . DB_PREFIX . " fakereviews_lastname WHERE fake_name_id = '" . (int)$fake_name_id . "'");

        if ($query->num_rows) {
            return array(
                'fake_name_id'             => $query->row['fake_name_id'],
                'lastname'             => $query->row['fake_lastname'],
            );
        } else {
            return false;
        }
    }
        
    public function getRandomLastNames($data = array()) {

            $sql = "SELECT * FROM " . DB_PREFIX . "fakereviews_lastname ORDER BY Rand() ASC LIMIT 0, 20";
            
            $fake_lastname_data = array();  
            
            $query = $this->db->query($sql);
                       
            foreach ($query->rows as $result) {
                
                $fake_lastname_data[$result['fake_name_id']] = $this->getRandomLastName($result['fake_name_id']);
            }       
        return $fake_lastname_data;
    }   

twig文件

代码语言:javascript
复制
{% for fullname in fullnames %}
{{ fullname['firstname'] }} {{ fullname['lastname'] }}
{% endfor %}

当页面加载时。好吧,创建20个名字。

但是我不能让它正确地显示姓氏。

请帮助我创建具有预定义数量的foreach随机全名(名字和姓氏)。

EN

回答 1

Stack Overflow用户

发布于 2021-08-26 18:09:32

您可以简单地使用rand()函数。

创建一个fake_firstname数组和一个fake_lastname数组,然后使用循环将它们连接起来,将所有内容包装在一个函数中,您就拥有了所需的内容。

假设您需要一个$n假名称数组

伪代码示例:

代码语言:javascript
复制
public function randomNames($n){
    // $first_name_array = fetch all first names in an array;
    // $last_name_array = fetch all last names in an array;
    
    $random_names = [];

    foreach($n as $i){
          $random_full_name = $first_name_array[rand(0,$n)%count($first_name_array)].' '.$last_name_array[rand(0,$n)%count($last_name_array)];
          array_push($random_names,$random_full_name);
    }

    return($random_names);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68943063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档