将数组传递给新函数?

时间:2013-11-12 11:53:47

标签: php arrays 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)

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

1 个答案:

答案 0 :(得分:1)

传递数组非常简单。

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

How to pass an array into a function, and return the results with an array