在foreach循环中添加值

时间:2017-10-02 19:28:18

标签: php loops

所以我有一个数组。

$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而不是带有数字总和的数组。我知道我必须回应它,但我必须在练习后期这样做。我很感激帮助。

2 个答案:

答案 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。