通过副本传递的PHP数组

通过副本传递的PHP数组,php,arrays,Php,Arrays,我试图永久重置数组中每个学生的平均分数,但没有运气。我使用&运算符将包含所有学生的数组传递给我的函数,以便通过引用传递。我运行重置平均标记的函数,并在表中打印结果,并指示平均标记已在方法内重置。然后在方法外部的数组上调用var_dump(),检查更改是否仍然有效。var_dump()的输出显示未更改的平均标记:'(。如有任何帮助,将不胜感激 ID Name Surname Address Telephone Average 123345(M) Roger Fe

我试图永久重置数组中每个学生的平均分数,但没有运气。我使用&运算符将包含所有学生的数组传递给我的函数,以便通过引用传递。我运行重置平均标记的函数,并在表中打印结果,并指示平均标记已在方法内重置。然后在方法外部的数组上调用var_dump(),检查更改是否仍然有效。var_dump()的输出显示未更改的平均标记:'(。如有任何帮助,将不胜感激

ID          Name    Surname Address Telephone   Average
123345(M)   Roger   Fenech  USA     21212121    0
835392(M)   Chris   Tabone  UK      21456780    0
693648(M)   Thomas  Grech   Spain   21854595    0
483582(M)   Michael Abela   Turkey  24872639    0
742652(M)   Stan    Galea   France  21951357    0
var_dump():

代码:


PHP测试
表{文本对齐:居中}

您还需要在
foreach
循环中使用引用:


否则,
$student
是数组元素的副本,因此
unset($student[“Average”])
只影响副本,而不影响原始数组。

您还需要在
foreach
循环中使用引用:


否则,
$student
是数组元素的副本,因此
unset($student[“Average”])
只影响副本,而不影响原始数组。

您还需要通过引用传递
$student
数组:
foreach($student as&$student)
,否则迭代时将复制每个学生数组。

您还需要通过引用传递
$student
数组:
foreach($students as&$student)
,否则迭代时将复制每个学生数组

array(5) { [0]=> array(6) { ["ID"]=> string(9) "123345(M)" ["Name"]=> string(5) "Roger" ["Surname"]=> string(6) "Fenech" ["Address"]=> string(3) "USA" ["Telephone"]=> int(21212121) ["Average"]=> int(100) } [1]=> array(6) { ["ID"]=> string(9) "835392(M)" ["Name"]=> string(5) "Chris" ["Surname"]=> string(6) "Tabone" ["Address"]=> string(2) "UK" ["Telephone"]=> int(21456780) ["Average"]=> int(78) } [2]=> array(6) { ["ID"]=> string(9) "693648(M)" ["Name"]=> string(6) "Thomas" ["Surname"]=> string(5) "Grech" ["Address"]=> string(5) "Spain" ["Telephone"]=> int(21854595) ["Average"]=> int(60) } [3]=> array(6) { ["ID"]=> string(9) "483582(M)" ["Name"]=> string(7) "Michael" ["Surname"]=> string(5) "Abela" ["Address"]=> string(6) "Turkey" ["Telephone"]=> int(24872639) ["Average"]=> int(88) } [4]=> array(6) { ["ID"]=> string(9) "742652(M)" ["Name"]=> string(4) "Stan" ["Surname"]=> string(5) "Galea" ["Address"]=> string(6) "France" ["Telephone"]=> int(21951357) ["Average"]=> int(76) } }
<html>
<head>
    <title>PHP Test</title>
</head>
<style type="text/css">
table{text-align: center}
</style>
<body>

    <?php 

    $students = array
    (
        array(
            'ID' => '123345(M)', 
            'Name' => 'Roger',
            'Surname' => 'Fenech',
            'Address' => 'USA',
            'Telephone' => 21212121,
            'Average' => 100
            ),
        array(
            'ID' => '835392(M)', 
            'Name' => 'Chris',
            'Surname' => 'Tabone',
            'Address' => 'UK',
            'Telephone' => 21456780,
            'Average' => 78
            ),
        array(
            'ID' => '693648(M)', 
            'Name' => 'Thomas',
            'Surname' => 'Grech',
            'Address' => 'Spain',
            'Telephone' => 21854595,
            'Average' => 60
            ),
        array(
            'ID' => '483582(M)', 
            'Name' => 'Michael',
            'Surname' => 'Abela',
            'Address' => 'Turkey',
            'Telephone' => 24872639,
            'Average' => 88
            ),
        array(
            'ID' => '742652(M)', 
            'Name' => 'Stan',
            'Surname' => 'Galea',
            'Address' => 'France',
            'Telephone' => 21951357,
            'Average' => 76
            )
        );

    function resetAverage(&$students){
        echo "<table>
        <tr>
        <th>ID</th> 
        <th>Name</th>
        <th>Surname</th>
        <th>Address</th>
        <th>Telephone</th>
        <th>Average</th>
        </tr>"                  ;
        foreach ($students as $student) {
            echo "<tr>";
            unset($student["Average"]);
            $student["Average"] = 0;
            foreach ($student as $key => $value) {
                echo "<td>" . $value . "</td>";
            }   
            echo '</tr>';
        }
        echo "</table>";
    }

    resetAverage($students);

    echo "<pre>" . var_dump($students) . "</pre>";
    ?>
</body>
</html>
foreach ($students as &$student) {