티스토리 뷰

배움/PHP

PHP collect 함수와 예제들

spaces25 2025. 4. 28. 10:17
반응형

PHP에서 "collect" 함수는 기본적으로 Laravel 프레임워크에서 제공하는 Collection 클래스를 사용하는 기능입니다. 이 Collection 클래스는 배열을 객체로 감싸서 다양한 편리한 메서드들(map, filter, pluck, reduce 등)을 사용할 수 있게 해줍니다.

아래에 Laravel의 collect() 함수와 주요 메서드들의 예제들.


✅ 기본 collect() 사용법

$collection = collect([1, 2, 3, 4, 5]);

이제 $collection은 다양한 메서드를 사용할 수 있는 Collection 객체가 됩니다.


🔁 자주 사용하는 Collection 메서드들 + 예제


1. map()

요소 하나씩 변환

$collection = collect([1, 2, 3]);
$mapped = $collection->map(function ($item) {
    return $item * 2;
});
// [2, 4, 6]

2. filter()

조건에 맞는 값만 필터링

$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(function ($value) {
    return $value > 3;
});
// [4, 5]

3. pluck()

배열에서 특정 key의 값만 추출

$collection = collect([
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
]);
$names = $collection->pluck('name');
// ['John', 'Jane']

4. reduce()

모든 요소를 하나의 값으로 축약

$total = collect([1, 2, 3])->reduce(function ($carry, $item) {
    return $carry + $item;
}, 0);
// 6

5. each()

각 요소에 대해 콜백 실행 (변경 X)

collect([1, 2, 3])->each(function ($item) {
    echo $item . PHP_EOL;
});

6. sortBy()

특정 키 기준으로 정렬

$collection = collect([
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
]);
$sorted = $collection->sortBy('age')->values();
// Jane, John 순

7. groupBy()

특정 키 기준으로 그룹핑

$collection = collect([
    ['type' => 'fruit', 'name' => 'apple'],
    ['type' => 'vegetable', 'name' => 'carrot'],
    ['type' => 'fruit', 'name' => 'banana'],
]);
$grouped = $collection->groupBy('type');
/*
[
    'fruit' => [...],
    'vegetable' => [...]
]
*/

8. first() / last()

$first = collect([10, 20, 30])->first(); // 10
$last = collect([10, 20, 30])->last();   // 30

💡 참고

  • collect()는 Laravel에서 제공하는 helper 함수이며, Laravel 프레임워크에서만 사용할 수 있습니다.
  • 순수 PHP만 사용하는 경우에는 array_map, array_filter 등 기본 배열 함수들을 사용하세요.
반응형

'배움 > PHP' 카테고리의 다른 글

Carbon::createFromFormat 문제 해결 방법  (1) 2025.04.30
PHP strict_types 기능  (0) 2025.04.29
Laravel 11 Eloquent: Relationships 연관관계  (0) 2025.04.25
PHP HTML parser 방법  (0) 2025.04.17
Laravel 11 라라벨 스케줄링(Scheduling)  (0) 2025.04.16
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함