所以我有一个数组。
$numbers1 = [31, 60, 54, 7, 13, 2, 9, 68, 5, 2, 9, 68, 5, 2];
我要做的是使用foreach循环将每个项目与20相加,然后将它们放在一个新的数组$newArray
中。这就是我到目前为止所提出的。
$numbers1 = [31, 60, 54, 7, 13, 2, 9, 68, 5, 2, 9, 68, 5, 2];
foreach ($numbers1 as &$value) {
$newArray = $value + 20;
}
但它似乎并没有起作用,因为我收到的答案是22而不是带有数字总和的数组。我知道我必须回应它,但我必须在练习后期这样做。我很感激帮助。
答案 0 :(得分:1)
你的问题基本上有效。将$newArray
替换为$value
,如下所示:
$numbers1 = [31, 60, 54, 7, 13, 2, 9, 68, 5, 2, 9, 68, 5, 2];
foreach ($numbers1 as &$value) {
$value += 20;
}
然后,如果您需要在新数组中使用,请在之后添加以下行:
$newArray = $numbers1;
由于您通过引用传递$value
,因此您可以使用$value += 20
行。
如果您不想进行无意义的阵列重新分配,可以执行以下操作:
$numbers1 = [31, 60, 54, 7, 13, 2, 9, 68, 5, 2, 9, 68, 5, 2];
foreach ($numbers1 as value) {
$newArray[] = $value + 20;
}
答案 1 :(得分:-1)
使用array_map
代替(更好的代码风格):
$newArray = array_map(function ($x) {
return $x + 20;
}, [31, 60, 54, 7, 13, 2, 9, 68, 5, 2, 9, 68, 5, 2]);
这将为每个条目分配函数,从而将每个值增加20。