Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP array_map() 함수 완벽 정리 – 문법부터 실전 예제까지

PHP의 array_map() 함수는 배열의 각 요소를 사용자가 직접 정의한 콜백 함수에 하나씩 전달하고, 그 실행 결과를 모아 새로운 배열로 반환하는 함수입니다. 배열의 모든 값을 일괄적으로 변환하거나 가공해야 할 때 반복문 없이 간결하게 처리할 수 있어 매우 유용합니다.

문법

array_map(callback, arr1, arr2, arr3, arr4, ...)

매개변수

  • callback — 각 배열 요소에 적용할 콜백 함수 이름

  • arr1 — 변환할 대상이 되는 배열

  • arr2 — 함께 처리할 추가 배열 (선택 사항)

  • arr3 — 함께 처리할 추가 배열 (선택 사항)

반환값

array_map() 함수는 첫 번째 배열의 각 값에 사용자가 정의한 함수를 순서대로 적용한 결과를 담은 새로운 배열을 반환합니다. 원본 배열은 변경되지 않습니다.

예제 1: 배열의 각 요소 제곱하기

<?php
function square($n) {
    return($n * $n);
}
$arr = array(1, 2, 3);
$res = array_map("square", $arr);
print_r($res);
?>

출력 결과

Array
(
[0] => 1
[1] => 4
[2] => 9
)

위 예제에서는 각 숫자를 제곱하는 square() 함수를 정의한 뒤, array_map()으로 배열의 모든 요소에 적용했습니다. 그 결과 [1, 2, 3]이 [1, 4, 9]로 변환된 것을 확인할 수 있습니다.

예제 2: 여러 배열을 묶어 다차원 배열 만들기

콜백 자리에 null을 전달하면, 여러 배열에서 같은 인덱스에 위치한 요소들을 하나씩 묶어 '배열의 배열' 형태로 만들 수 있습니다.

<?php
$arr1 = array(1, 2, 3);
$arr2 = array("steve", "david", "nadal");
$arr3 = array("cricket", "football", "tennis");
$res = array_map(null, $arr1, $arr2, $arr3);
print_r($res);
?>

출력 결과

Array
(
[0] => Array
(
[0] => 1
[1] => steve
[2] => cricket
)

[1] => Array
(
[0] => 2
[1] => david
[2] => football
)

[2] => Array
(
[0] => 3
[1] => nadal
[2] => tennis
)
)

이처럼 array_map(null, ...) 방식은 서로 다른 여러 배열의 데이터를 행 단위로 결합할 때 특히 편리합니다. 마치 데이터베이스의 레코드처럼 구조화된 배열을 손쉽게 생성할 수 있습니다.