将数组传递给新函数


Passing an array over to new function?

我正在使用复选框构建一个插入页面,工作人员可以在其中为指定主题区域内的班级分配资格(阅读:指定的成绩单),为此,它首先检查用户(阅读:学校)是否订阅了正确的资格,然后才能订阅。

复选框页面完全由 WHILE 循环构建而成,在该循环中,它打印学科区域内的所有课程以及与该主题可用的资格数量相对应的复选框数量。

while ($row = $classlistresult->fetch ())
                {
                    printf ("<form method='"post'" 
                    action='"%s?action=4&class=%d'">'n",
                    script_name (),
                    ASSIGN_QUALIFICATIONS,
                    $row['idClass'] );
                    print ("<tr>'n");
                    $url = sprintf ("%s?action=%d&idClass=%d", 
                    script_name (), 
                    CLASS_LIST, 
                    $row["idClass"]);
                    display_cell ("td" , "<a href='"$url'">" . $row["Class"] . "    </a>", FALSE);
                    display_cell ("td", $row["Staff"]);
                    $idClass = $row["idClass"];
                    $idstaff = $row["idStaff"];
                    $_SESSION['Class'] = $idClass;
                    $qualname = "
                    SELECT `mldb`.`qualification`.`idQualification`, `mldb`.`qualification`.`Code`
                    FROM    `mldb`.`qualification` ";
                    $qualresult = mysqli_query ($dbc, $qualname) ;
                    while ($row = mysqli_fetch_array($qualresult, MYSQLI_ASSOC))
                        {
                            $idqual = $row['idQualification'] ;
                            print ("<td><p><input type = 'checkbox'
                            name = 'addqual[]'
                            value = '$idqual''n" ."</a>") ;
                        }

现在,一切正常 - 当我进行回显测试以查看是否正在解析正确的类和资格信息时,它显示了正确的类和资格 ID 数组。

下面是此回声测试返回的类 ID 的一小部分:

58339160 58339321 58339523 5833958 58339162 58339518 58339873 58339398 58339595 58339732 58339500 58339735 58339828 58339492 58339128 58339139 58339740 583395 58339719 58339493 5833918 58339695 5833932 58339879 58339839 58339788

但是,当我启动一个将使用复选框页面中的信息更新数据库的新函数时,我发现自己被类 ID 和资格 ID 的固定变量卡住了,因此当我尝试将数据插入数据库时会产生重复错误:

class ID: 58339160
qualification ID: 3 (The very first entries of both Class and Qualification)

我的问题是:如何将数组传递给新函数,同时仍将其维护为数组?非常感谢!

传递数组非常简单。

function foo($array)
{
    $array[3]=$array[0]+$array[1]+$array[2];
    return $array;
}

循环访问数组

 function fooLoop($array)
{   $sum = 0;
    for($i= 0; $i<count($array); $i++){
         $sum = $sum + $array[$i];
         echo   $array[$i];
       }
    return $sum;
}

$waffles[0]=1;
$waffles[1]=2;
$waffles[2]=3;
foo($waffles);

文档链接: http://php.net/manual/en/functions.arguments.php

如何将数组传递到函数中,并使用数组返回结果