2010-01-29 4 views
1

두 개의 다차원 배열을 동일한 크기로 필드별로 추가하려고합니다. 즉 :PHP에서 필드별로 다차원 배열을 추가하는 가장 우아한 방법은 무엇입니까?

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

또는 모든 배열을 통해 foreaching보다 더 우아한 방법이 있나요

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

:

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

발생 하는가?

+0

가 왜 foreaching 좋아하지 않는 일을하고있을거야? – artemb

+0

그것은 우아함의 문제입니다 ... –

답변

1

함수 array_map()을 사용할 수 있습니다.이 함수는 배열 (각 경우 $ a)의 각 요소에 함수를 적용하고 그 함수에 콜백 함수를 적용하면 다른 함수에 다른 인수를 제공 할 수 있습니다 array (귀하의 경우 $ b). 결과는 예제의 $ sum이됩니다.

콜백 함수는 인수가 배열인지 확인해야합니다. 그렇다면 인수가 함수를 추가하는 데 필요한 배열이 아닌 경우 매핑 함수를 다시 수행해야합니다 (재귀 함수).

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

그래서 전부 당신이 떨어져 더 나은 중첩 된 foreach 문 :

관련 문제