본문 바로가기

헬퍼

번역일: 2026년 6월 20일

헬퍼

소개

Laravel은 다양한 전역 PHP "헬퍼" 함수를 제공합니다. 이 중 상당수는 프레임워크 내부에서 사용되지만, 필요하다면 여러분의 애플리케이션에서도 자유롭게 활용할 수 있습니다.

사용 가능한 메서드

배열 & 객체

숫자

경로

URL

기타

배열 & 객체

`Arr::accessible()` {.collection-method .first-collection-method}

Arr::accessible 메서드는 주어진 값이 배열처럼 접근 가능한지 확인합니다.

use Illuminate\Support\Arr; use Illuminate\Support\Collection; $isAccessible = Arr::accessible(['a' => 1, 'b' => 2]); // true $isAccessible = Arr::accessible(new Collection); // true $isAccessible = Arr::accessible('abc'); // false $isAccessible = Arr::accessible(new stdClass); // false

`Arr::add()` {.collection-method}

Arr::add 메서드는 배열에 해당 키가 없거나 값이 null인 경우에만 키/값 쌍을 추가합니다.

use Illuminate\Support\Arr; $array = Arr::add(['name' => 'Desk'], 'price', 100); // ['name' => 'Desk', 'price' => 100] $array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100); // ['name' => 'Desk', 'price' => 100]

`Arr::array()` {.collection-method}

Arr::array 메서드는 "점(dot) 표기법"을 사용해 중첩 배열에서 값을 가져옵니다(Arr::get()과 동일). 단, 해당 값이 array 타입이 아니면 InvalidArgumentException을 던집니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'languages' => ['PHP', 'Ruby']]; $value = Arr::array($array, 'languages'); // ['PHP', 'Ruby'] $value = Arr::array($array, 'name'); // InvalidArgumentException 발생

`Arr::boolean()` {.collection-method}

Arr::boolean 메서드는 "점 표기법"을 사용해 중첩 배열에서 값을 가져옵니다. 해당 값이 boolean 타입이 아니면 InvalidArgumentException을 던집니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'available' => true]; $value = Arr::boolean($array, 'available'); // true $value = Arr::boolean($array, 'name'); // InvalidArgumentException 발생

`Arr::collapse()` {.collection-method}

Arr::collapse 메서드는 여러 배열 또는 컬렉션을 하나의 배열로 합칩니다.

use Illuminate\Support\Arr; $array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

`Arr::crossJoin()` {.collection-method}

Arr::crossJoin 메서드는 주어진 배열들의 카르테시안 곱(Cartesian product)을 반환합니다. 모든 가능한 조합을 생성합니다.

use Illuminate\Support\Arr; $matrix = Arr::crossJoin([1, 2], ['a', 'b']); /* [ [1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], ] */ $matrix = Arr::crossJoin([1, 2], ['a', 'b'], ['I', 'II']); /* [ [1, 'a', 'I'], [1, 'a', 'II'], [1, 'b', 'I'], [1, 'b', 'II'], [2, 'a', 'I'], [2, 'a', 'II'], [2, 'b', 'I'], [2, 'b', 'II'], ] */

`Arr::divide()` {.collection-method}

Arr::divide 메서드는 배열을 키 배열과 값 배열, 두 개의 배열로 분리하여 반환합니다.

use Illuminate\Support\Arr; [$keys, $values] = Arr::divide(['name' => 'Desk']); // $keys: ['name'] // $values: ['Desk']

`Arr::dot()` {.collection-method}

Arr::dot 메서드는 다차원 배열을 "점 표기법"으로 깊이를 표현하는 단일 레벨 배열로 변환합니다.

use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; $flattened = Arr::dot($array); // ['products.desk.price' => 100]

`Arr::every()` {.collection-method}

Arr::every 메서드는 배열의 모든 요소가 주어진 조건을 만족하는지 확인합니다.

use Illuminate\Support\Arr; $array = [1, 2, 3]; Arr::every($array, fn ($i) => $i > 0); // true Arr::every($array, fn ($i) => $i > 2); // false

`Arr::except()` {.collection-method}

Arr::except 메서드는 배열에서 지정한 키/값 쌍을 제거합니다.

use Illuminate\Support\Arr; $array = ['name' => 'Desk', 'price' => 100]; $filtered = Arr::except($array, ['price']); // ['name' => 'Desk']

`Arr::exceptValues()` {.collection-method}

Arr::exceptValues 메서드는 배열에서 지정한 값들을 제거합니다.

use Illuminate\Support\Arr; $array = ['foo', 'bar', 'baz', 'qux']; $filtered = Arr::exceptValues($array, ['foo', 'baz']); // ['bar', 'qux']

strict 인수에 true를 전달하면 엄격한 타입 비교를 사용합니다.

use Illuminate\Support\Arr; $array = [1, '1', 2, '2']; $filtered = Arr::exceptValues($array, [1, 2], strict: true); // ['1', '2']

`Arr::exists()` {.collection-method}

Arr::exists 메서드는 배열에 해당 키가 존재하는지 확인합니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'age' => 17]; $exists = Arr::exists($array, 'name'); // true $exists = Arr::exists($array, 'salary'); // false

`Arr::first()` {.collection-method}

Arr::first 메서드는 주어진 조건을 처음으로 만족하는 배열 요소를 반환합니다.

use Illuminate\Support\Arr; $array = [100, 200, 300]; $first = Arr::first($array, function (int $value, int $key) { return $value >= 150; }); // 200

세 번째 인수로 기본값을 전달할 수 있으며, 조건을 만족하는 요소가 없을 경우 기본값이 반환됩니다.

use Illuminate\Support\Arr; $first = Arr::first($array, $callback, $default);

`Arr::flatten()` {.collection-method}

Arr::flatten 메서드는 다차원 배열을 단일 레벨 배열로 평탄화합니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'languages' => ['PHP', 'Ruby']]; $flattened = Arr::flatten($array); // ['홍길동', 'PHP', 'Ruby']

`Arr::float()` {.collection-method}

Arr::float 메서드는 "점 표기법"을 사용해 중첩 배열에서 값을 가져옵니다. 해당 값이 float 타입이 아니면 InvalidArgumentException을 던집니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'balance' => 123.45]; $value = Arr::float($array, 'balance'); // 123.45 $value = Arr::float($array, 'name'); // InvalidArgumentException 발생

`Arr::forget()` {.collection-method}

Arr::forget 메서드는 "점 표기법"을 사용해 중첩 배열에서 특정 키/값 쌍을 제거합니다.

use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; Arr::forget($array, 'products.desk'); // ['products' => []]

`Arr::from()` {.collection-method}

Arr::from 메서드는 다양한 입력 타입을 일반 PHP 배열로 변환합니다. 일반 배열, 객체, Arrayable, Enumerable, Jsonable, JsonSerializable 등의 Laravel 인터페이스와 Traversable, WeakMap 인스턴스를 지원합니다.

use Illuminate\Support\Arr; Arr::from((object) ['foo' => 'bar']); // ['foo' => 'bar'] class TestJsonableObject implements Jsonable { public function toJson($options = 0) { return json_encode(['foo' => 'bar']); } } Arr::from(new TestJsonableObject); // ['foo' => 'bar']

`Arr::get()` {.collection-method}

Arr::get 메서드는 "점 표기법"을 사용해 중첩 배열에서 값을 가져옵니다.

use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; $price = Arr::get($array, 'products.desk.price'); // 100

두 번째 인수로 지정한 키가 없을 때 반환할 기본값을 전달할 수 있습니다.

use Illuminate\Support\Arr; $discount = Arr::get($array, 'products.desk.discount', 0); // 0

`Arr::has()` {.collection-method}

Arr::has 메서드는 "점 표기법"을 사용해 배열에 지정한 키 또는 키들이 존재하는지 확인합니다.

use Illuminate\Support\Arr; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $contains = Arr::has($array, 'product.name'); // true $contains = Arr::has($array, ['product.price', 'product.discount']); // false

`Arr::hasAll()` {.collection-method}

Arr::hasAll 메서드는 지정한 모든 키가 배열에 존재하는지 확인합니다.

use Illuminate\Support\Arr; $array = ['name' => 'Taylor', 'language' => 'PHP']; Arr::hasAll($array, ['name']); // true Arr::hasAll($array, ['name', 'language']); // true Arr::hasAll($array, ['name', 'IDE']); // false

`Arr::hasAny()` {.collection-method}

Arr::hasAny 메서드는 "점 표기법"을 사용해 지정한 키들 중 하나라도 배열에 존재하는지 확인합니다.

use Illuminate\Support\Arr; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $contains = Arr::hasAny($array, 'product.name'); // true $contains = Arr::hasAny($array, ['product.name', 'product.discount']); // true $contains = Arr::hasAny($array, ['category', 'product.discount']); // false

`Arr::integer()` {.collection-method}

Arr::integer 메서드는 "점 표기법"을 사용해 중첩 배열에서 값을 가져옵니다. 해당 값이 int 타입이 아니면 InvalidArgumentException을 던집니다.

use Illuminate\Support\Arr; $array = ['name' => '홍길동', 'age' => 42]; $value = Arr::integer($array, 'age'); // 42 $value = Arr::integer($array, 'name'); // InvalidArgumentException 발생

`Arr::isAssoc()` {.collection-method}

Arr::isAssoc 메서드는 주어진 배열이 연관 배열이면 true를 반환합니다. 키가 0부터 시작하는 연속적인 정수가 아닌 경우 연관 배열로 간주합니다.

use Illuminate\Support\Arr; $isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]); // true $isAssoc = Arr::isAssoc([1, 2, 3]); // false

`Arr::isList()` {.collection-method}

Arr::isList 메서드는 배열의 키가 0부터 시작하는 연속적인 정수인 경우 true를 반환합니다.

use Illuminate\Support\Arr; $isList = Arr::isList(['foo', 'bar', 'baz']); // true $isList = Arr::isList(['product' => ['name' => 'Desk', 'price' => 100]]); // false

`Arr::join()` {.collection-method}

Arr::join 메서드는 배열 요소를 문자열로 연결합니다. 세 번째 인수로 마지막 요소 앞에 사용할 구분자를 따로 지정할 수 있습니다.

use Illuminate\Support\Arr; $array = ['Tailwind', 'Alpine', 'Laravel', 'Livewire']; $joined = Arr::join($array, ', '); // Tailwind, Alpine, Laravel, Livewire $joined = Arr::join($array, ', ', ', 그리고 '); // Tailwind, Alpine, Laravel, 그리고 Livewire

`Arr::keyBy()` {.collection-method}

Arr::keyBy 메서드는 지정한 키를 기준으로 배열을 재구성합니다. 동일한 키가 여러 개 있으면 마지막 항목만 남습니다.

use Illuminate\Support\Arr; $array = [ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'], ]; $keyed = Arr::keyBy($array, 'product_id'); /* [ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ] */

`Arr::last()` {.collection-method}

Arr::last 메서드는 주어진 조건을 마지막으로 만족하는 배열 요소를 반환합니다.

use Illuminate\Support\Arr; $array = [100, 200, 300, 110]; $last = Arr::last($array, function (int $value, int $key) { return $value >= 150; }); // 300

세 번째 인수로 기본값을 전달할 수 있습니다.

use Illuminate\Support\Arr; $last = Arr::last($array, $callback, $default);

`Arr::map()` {.collection-method}

Arr::map 메서드는 배열을 순회하며 각 값과 키를 콜백에 전달하고, 콜백의 반환값으로 배열을 새로 구성합니다.

use Illuminate\Support\Arr; $array = ['first' => 'james', 'last' => 'kirk']; $mapped = Arr::map($array, function (string $value, string $key) { return ucfirst($value); }); // ['first' => 'James', 'last' => 'Kirk']

`Arr::mapSpread()` {.collection-method}

Arr::mapSpread 메서드는 배열을 순회하며 각 중첩 배열의 요소들을 클로저의 개별 인수로 펼쳐 전달합니다. 클로저의 반환값으로 새 배열을 구성합니다.

use Illuminate\Support\Arr; $array = [ [0, 1], [2, 3], [4, 5], [6, 7], [8, 9], ]; $mapped = Arr::mapSpread($array, function (int $even, int $odd) { return $even + $odd; }); /* [1, 5, 9, 13, 17] */

`Arr::mapWithKeys()` {.collection-method}

Arr::mapWithKeys 메서드는 배열을 순회하며 각 값을 콜백에 전달합니다. 콜백은 키/값 쌍을 하나씩 가진 연관 배열을 반환해야 합니다.

use Illuminate\Support\Arr; $array = [ [ 'name' => 'John', 'department' => '영업', 'email' => 'john@example.com', ], [ 'name' => 'Jane', 'department' => '마케팅', 'email' => 'jane@example.com', ] ]; $mapped = Arr::mapWithKeys($array, function (array $item, int $key) { return [$item['email'] => $item['name']]; });

이 문서는 Laravel 공식 문서(MIT)를 한국 개발자를 위해 번역·재구성한 것입니다.

번역일: 2026년 6월 20일