从现有数组php

时间:2018-09-10 19:46:42

标签: php loops foreach

大家好,需要foreach循环的帮助,我需要创建一个名为a的数组,其数组为:[10, 3, 45, 98, 4, 7, 56, 23, 3, 1]。然后使用for-each循环将每一项与10相加,然后将它们放入一个名为b的新数组中。

下面的检查代码可在同一$ a数组上工作,但如何将它们放入新数组中?

$a = [10, 3, 45, 98, 4, 7, 56, 23, 3, 1];
$b = [];

foreach ($a as &$value) {
    $value = 10 + $value;
}
echo $a; 

2 个答案:

答案 0 :(得分:4)

您需要为新数组中的每个键分配总和。

$a = [10, 3, 45, 98, 4, 7, 56, 23, 3, 1];
$b = [];

foreach ($a as $key => $value) {
    $b[$key] = 10 + $value;
}

var_dump($b); // prints $b

请参见https://3v4l.org/bURiM

如果您将$a用作关联数组,这也将起作用:

$a = ['a' => 10, 'b' => 3, 'c' => 45];
$b = [];

foreach ($a as $key => $value) {
    $b[$key] = 10 + $value;
}

var_dump($b); // prints $b

请参见https://3v4l.org/UOBok

答案 1 :(得分:2)

通过对输入数组的所有元素执行相同的操作来生成新数组称为mapping,这也可以使用PHP中的高阶函数来完成,除非您特别要求出于某种原因使用foreach循环。

$b = array_map(function($n) { return $n + 10; }, $a);