Создать новый массив из существующего массива php - PullRequest
0 голосов
/ 10 сентября 2018

Привет, ребята, нужна помощь с циклом 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 голосов
/ 10 сентября 2018

Генерация нового массива путем выполнения одной и той же операции над всеми элементами входного массива называется mapping , и это также можно сделать с помощью функции более высокого порядка в PHP, если только вы не являетесь специально по какой-то причине требуется использовать цикл foreach.

$b = array_map(function($n) { return $n + 10; }, $a);
0 голосов
/ 10 сентября 2018

Вам необходимо присвоить сумму каждому ключу в новом массиве.

$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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...