php - 在单个 PHP 函数中处理多个变量

标签 php arrays function for-loop variables

我是新手,需要有关如何解决简单问题的指导。

我正在使用 PHP 构建一个应用程序,以支持 Fantasy Premier League (FPL) 球队数据的不同 View 。我从 API(JSON 数组)中提取数据,循环遍历它,并将其存储在数据库中。其中一个 API 调用需要一个 team_id 来拉取该球队各自的球员。

我最初的想法是编写一个函数,将team_id作为参数,然后解析数据以插入到数据库中。但是,如何将 12 个不同的 team_id 中的每一个传递给要处理的函数,而不为每个 team_id 重复该函数 12 次?

所以,我可能会:

$team_id_1 = 1;
$team_id_2 = 2;
$team_id_3 = 3;
etc...

那么我的功能可能是:

function insert_team_data($team_id) {

$fplUrl = 'https://fantasy.premierleague.com/api/entry/' . $team_id . '/event/29/picks/';

foreach ($team_data as $key => $value) {
    # code...
}

$sql = "INSERT INTO ..."

}

是否可以通过在单个进程中将每个 team_id 迭代传递给函数的方式来构造此函数(即,无需为每个 team_id 重复函数代码) ?我是否可以创建一个 team_id 数组,并让函数循环遍历每个数组,然后循环遍历每个结果团队的数据?

最佳答案

是的,您可以执行以下任一操作:使用数组可变参数函数

您正在考虑的方式就是所谓的 variadic function或变长函数。

它可以通过使用 func_get_args()splat 运算符来实现,后者处理参数打包/解包。

这是一个例子。

function insert_team_data(... $team_ids) {

    // $team_ids will appear as an array in your function    
    foreach ($team_ids as $team_id) {
        $fplUrl = "https://fantasy.premierleague.com/api/entry/$team_id/event/29/picks/";
        $sql = "INSERT INTO ..."
        // rest of code...
    }


}

您现在可以像这样调用该函数:insert_team_data(1, 2, 3, 4, 5)

关于php - 在单个 PHP 函数中处理多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037257/

相关文章:

php - 具有两种身份验证方法的 FOSUserBundle

php - 具有 X num 个关系属性的动态过滤器查询 - Doctrine Symfony2

php,mysql - 将结果组合成多维关联数组

java - 如何让线程等到数组包含元素

r - 在 R : turn list of functions into one big function (element-wise sum of functions)

php - 使用 jquery 从 javascript 到 php 进行 AJAX 调用

php - 我的 PHP 登录脚本出现以下错误

php - PHP 中有从数组中提取 'column' 的函数吗?

javascript - 事件后退出函数

c++ - C++ 函数中的消息传递