【问题标题】:To create random first and last name. multiple pieces创建随机的名字和姓氏。多件
【发布时间】:2021-10-26 18:47:09
【问题描述】:

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

名字:fake_name_id, fake_firstname

第二个:fake_name_id,fake_lastname

到目前为止,我已经做到了:

控制器文件

$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查询名字和姓氏

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;
    }   

树枝文件

{% for fullname in fullnames %}
{{ fullname['firstname'] }} {{ fullname['lastname'] }}
{% endfor %}

页面加载时。很好地创建了 20 个名字。

但我无法正确显示姓氏。

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

【问题讨论】:

    标签: php mysql random twig opencart


    【解决方案1】:

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

    创建一个fake_firstname 数组和一个fake_lastname 数组,然后使用循环将它们连接起来,将所有内容包装在一个函数中,这样你就得到了你需要的东西。

    假设您需要一组$n 假名

    示例伪代码:

    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);
    
    }
    

    【讨论】:

    • 很遗憾,我做不到。 :S 出于某种原因,我不能。 :s
    • 如何获取所有数组?
    猜你喜欢
    • 1970-01-01
    • 2016-02-22
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多