PHP의 언어에서 제공되는 기능중 가장 이해가 어려운 부분중 하나는 array() 호출로 만들어지는 배열을 다루는 법일 것입니다.


PHP의 배열은 다른 언어와는 달리 리스트(List), 해쉬(Hash), 집합(Set), 맵(Map) 등을 섞어 놓아서 어떻게 동작하는지 혼란스러우며 용도에 따라 다른 자료 구조를 선택하는게 어렵습니다.


또 배열을 다루는 PHP의 내장 함수들은 사용이 어렵고 일관성있게 동작하지 않으므로 아주 익숙한 개발자가 아니라면 실수할 여지가 큽니다.

예로 배열을 다루는 대부분의 PHP 함수들은 array_ 로 시작하며 배열안에 값이 있는지 확인하는 함수는 array_search 이지만 키가 배열안에 있는지 확인하는 함수는 array_has 가 아닌 in_array 입니다.


콜백 함수를 통해 배열의 요소를 필터링 하는 함수인 array_filter 나 사용자 정의 비교 콜백을 사용하여 배열을 정렬하는 함수인 usort 는 콜백이 2번째 파라미터이지만 모든 요소에 대해 콜백을 적용하는 함수인 array_map 은 콜백이 첫 번째 파라미터입니다.

라라벨은 이런 문제를 해결하기 위해 Illuminate\Support\Collection 래퍼 클래스를 제공하고 있으므로 이를 사용하면 자료 구조를 손쉽고 일관성있게 다룰 수 있습니다.


그러면 라라벨 컬렉션의 특징 및 사용법과 대표적인 메소드에 대해서 알아 보겠습니다.