티스토리 뷰
반응형
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
링크
TAG
- ob_get_contents
- createfromformat
- Laravel
- array_combine
- facades
- eloquent
- reflectionclass
- jp:a
- mysql
- WSL2
- php
- privatechannel
- PYTHON
- 설정
- swagger
- uniqid
- call_user_func
- 명령어
- 설치
- researcher
- laravel 테스트
- wsl
- curl_multi_init
- laravel 12
- laravel 11
- 비동기
- flask
- ubuntu
- strict_types
- #collect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함