【发布时间】:2021-08-16 07:23:27
【问题描述】:
<!DOCTYPE html>
<html>
<body>
<?php
$array_task=array();
fillArray($array_task);
function fillArray($array){
$array1=array();
$array2=array();
for ($i=0;$i<8;$i++){
$array1[$i]=$i+1;
$array2[$i]=rand(0,100);
}
$array=array_combine($array1,$array2);
echo"Array before any editions <br>";
print_r($array);
echo"<br>Array after adding sum and multiplication <br>";
addSumMulti($array);
print_r($array);
echo"<br>Array after adding last element after each array element <br>";
#addAfterEach($array);
}
function addSumMulti($array){
$sum=0;
$multiplication=1;
for ($i=1;$i<=10;$i++){
$sum+=$array[$i];
if ($i==3 || $i==4){
$multiplication*=$array[$i];
}
}
$array[9]=$sum;
$array[10]=$multiplication;
print_r($array);
echo "<br>";
}
?>
</body>
</html>
首先 print_r ($array) 显示 8 个元素,然后在下一个函数中添加 2 个元素。而函数 addSumMulti 中的 print_r 显示了 10 个元素,但是 fillArray 内的函数 addSumMulti 之后的 print_r 仅显示了 8 个元素。出了什么问题,我应该改变什么,以便在 addSumMulti(21 行)之后可以在 print_r 中看到 10 个元素?
【问题讨论】:
-
数组是按值传递的。