我不能把真正的代码放在这里,因为它很长并且很难 解释
我在数据库中有用户表,我在数据库中也有数据表。
因此,要获取用户数据,我将传递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,我的真实功能默认不接受,不能更改。
提前致谢!
答案 0 :(得分:0)
替换
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);
答案 1 :(得分:0)
如果您的目标是向该功能发送更多数据,您总是需要对您的功能进行签名更改,如下所示:
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
但我不确定你将如何处理返回的数据。
编辑:是的,然后在函数中,您可以收集数组中的数据并从函数返回一组数据。
答案 2 :(得分:0)
如果您可以将功能从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);
}