我在数据库中我不能在这里放真正的代码,因为很长,很难 解释。
有用户表,我在数据库中也有数据表。
因此,为了获取用户数据,我将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);
}