Какой самый элегантный способ сложения многомерных массивов поле за полем в PHP? - PullRequest
1 голос
/ 29 января 2010

Я пытаюсь сложить два многомерных массива, одинакового размера, поле за полем. I.e.:

$sum[4][3] = $a[4][3] + $b[4][3];

Или:

$a = array( array(1, 4), array(3, 2));
$b = array( array(9, 2), array(1, 0));

Должно привести к:

$sum = array( array(10, 6), array(4, 2));

Есть ли более элегантный способ, чем проповедование по всем массивам?

1 Ответ

1 голос
/ 29 января 2010

Вы можете использовать функцию array_map (). Она применяет функцию к каждому из элементов в массиве ($ a в вашем случае) и применяет к ним функцию обратного вызова, вы можете дать дополнительные аргументы этим функциям, предоставив другой массив ($ b в вашем случае). Результатом будет $ сумма вашего примера.

Функция обратного вызова должна будет проверять, являются ли аргументы массивами, в этом случае ей нужно будет снова выполнить функцию отображения (то есть, ее рекурсивную функцию), если аргументы не являются массивом, для добавления этой функции требуется *. 1003 *

http://nl3.php.net/manual/en/function.array-map.php

Так что в целом вы бы лучше справились со вложенным foreach:)

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