본문 바로가기
PHP

[PHP] array_reduce()로 배열 축약하기

by teamnova 2025. 5. 11.
728x90

안녕하세요, 

 

오늘은 php 함수 array_reduce()에 대해 설명해보겠습니다. 

 

array_reduce()

이 함수는 배열을 하나의 값으로 축약할 때 사용됩니다. 

array_reduce(array $array, callable $callback, mixed $initial = null): mixed

 

  • $array: 처리할 배열
  • $callback: 누적 계산 함수 (carry, item) 형태
  • $initial: 누적 시작값 (선택, 없으면 첫 번째 요소가 초기값)

이 함수는 누적자($carry)에 배열 요소를 하나씩 적용하면서 최종적으로 하나의 결과를 반환합니다. 

 

아래는 array_reduce()를 활용한 3가지 대표 예제 코드입니다. 

 

<?php

echo "=== PHP array_reduce() 예제 ===<br><br>";

// 1. 배열의 합 구하기
$numbers = [1, 2, 3, 4, 5];
$sum = array_reduce($numbers, function ($carry, $item) {
    return $carry + $item;
}, 0);

echo "1. 배열의 합<br>";
echo "배열: [" . implode(", ", $numbers) . "]<br>";
echo "합계: $sum<br><br>";

// 2. 문자열 합치기
$words = ['PHP', 'is', 'awesome'];
$sentence = array_reduce($words, function ($carry, $item) {
    return $carry . ' ' . $item;
}, '');

echo "2. 문자열 연결<br>";
echo "배열: ['" . implode("', '", $words) . "']<br>";
echo "결과: " . trim($sentence) . "<br><br>";

// 3. 곱 계산하기
$nums = [2, 3, 4];
$product = array_reduce($nums, fn($carry, $item) => $carry * $item, 1);

echo "3. 곱 계산<br>";
echo "배열: [" . implode(", ", $nums) . "]<br>";
echo "곱: $product<br>";

?>

 

 

결과는 다음과 같이 출력됩니다. 

=== PHP array_reduce() 예제 ===

1. 배열의 합
배열: [1, 2, 3, 4, 5]
합계: 15

2. 문자열 연결
배열: ['PHP', 'is', 'awesome']
결과: PHP is awesome

3. 곱 계산
배열: [2, 3, 4]
곱: 24