PHP 주요레퍼런스/배열 함수

array_map

웹 개발자의 비상 2011. 8. 31. 21:58
array array_map ( callback callback, array arr1 [, array ...] )
배열의 각 원소에 사용자가 정의한 함수를 적용하고 적용한 후의 결과를 배열로 반환한다.

arr1배열에서 순차적으로 1개, arr2배열에서 순차적으로 한개 ,... 이런식으로 인자로 적용된 배열 모두에서 순차적으로 1개씩 가지고 와서 미리 정의된 callback 함수에 인자로 사용해 반환된 값을 다시 배열로 반환한다.
그러므로 callback함수의 인자는 array_map에 인자로 사용된 배열의 개수와 동일하다

예제1

<?
$food_type = array("food", "beverage", "cuisine", "fruit");
$food_name = array("pizza", "cola", "pasta", "apple");

function showFoods($a, $b) {
return $b . " is " . $a;
}

// 배열의 각 원소에 대하여 순서대로 showFoods() 함수를 실행한다.
$foods = array_map("showFoods", $food_type, $food_name);

print_r($foods);
/*
Array
(
[0] => pizza is food
[1] => cola is beverage
[2] => pasta is cuisine
[3] => apple is fruit
)
*/
?>



예제2

<?
$food_type = array("food", "beverage", "cuisine", "fruit");
$food_name = array("pizza", "cola", "pasta", "apple");

function makeFoods($a, $b) {
return (array($a => $b));
}

// 배열의 각 원소에 대하여 순서대로 makeFoods() 함수를 실행한다.
$foods = array_map("makeFoods", $food_type, $food_name);

print_r($foods);
/*
Array
(
[0] => Array
(
[food] => pizza
)

[1] => Array
(
[beverage] => cola
)

[2] => Array
(
[cuisine] => pasta
)

[3] => Array
(
[fruit] => apple
)

)
*/
?>


callback 함수 대신 NULL을 입력한경우 반환되는 배열을 값들을 내부 배열로 갖는 다차원인덱싱 배열이 된다.
728x90

'PHP 주요레퍼런스 > 배열 함수' 카테고리의 다른 글

array_sum  (0) 2011.08.31
array_change_key_case  (0) 2011.08.31
array_search  (0) 2011.08.31
array_key_exists  (0) 2011.08.31
array_intersect_assoc  (0) 2011.08.31