循环以获取用户数据


Loop to get user data

我不能在这里放真正的代码,因为很长,很难 解释。

我在数据库中

用户表,我在数据库中也有数据表。

因此,为了获取用户数据,我将user_id作为参数传递。喜欢这个:

public function get_user_data($user_id) {
}

但。每个"请求"我只能获得 1 个数据。(继续阅读)

public function user_data() {
   $getUsers = $this->db->get('users');
   foreach($getUsers->result_array() as $user)
   {
      $data =  $this->get_user_data($user->ID);
      var_dump($data); // Only return 1 data;
   } 
}

但是,我想有办法"绕过"这一点,但我不知道。我有思考困难。

正如我所说,我想"绕过"这个,并能够发送多个用户ID,我真正的功能默认不接受,无法更改。

提前感谢!

替换

foreach($getUsers->result_array() as $user)
{
$data =  $this->get_user_data($user->ID);
var_dump($data); // Only return 1 data;
}

对此

foreach($getUsers->result_array() as $user)
{
$data[] =  $this->get_user_data($user->ID);    
}
var_dump($data); 

如果您的目标是向函数发送更多数据,则始终需要对函数进行签名更改,如下所示:

 function get_user_data() {
      $args = func_get_args();    
      /** now you can access these as $args[0], $args[1] **/
 }

function get_user_data(...$user_ids) {         
      /** now you can access these as $user_ids[0], $user_ids[1] **/
}
// Only higher version of PHP

但我不确定您将如何处理返回的数据。

编辑:是的,然后在函数中,您可以在数组中收集数据并从函数返回数据数组。

如果你能把你的函数从where更改为where_in我想你会得到一个简单的解决方案。

public function get_user_data($user_ids)
{
     // your db code 
     $this->db->where_in('ID',$user_ids); //replace where with where_in
}

public function user_data() 
{
    $getUsers = $this->db->get('users');
    foreach($getUsers->result_array() as $user)
    {
        $user_ids[] =  $user->ID;
    } 
    $this->get_user_data($user_ids);
 }