헬퍼
번역일: 2026년 6월 20일
헬퍼
소개
Laravel은 다양한 전역 PHP "헬퍼" 함수를 제공합니다. 이 중 상당수는 프레임워크 내부에서 사용되지만, 필요하다면 여러분의 애플리케이션에서도 자유롭게 활용할 수 있습니다.
사용 가능한 메서드
배열 & 객체
Arr::accessible Arr::add Arr::array Arr::boolean Arr::collapse Arr::crossJoin Arr::divide Arr::dot Arr::every Arr::except Arr::exceptValues Arr::exists Arr::first Arr::flatten Arr::float Arr::forget Arr::from Arr::get Arr::has Arr::hasAll Arr::hasAny Arr::integer Arr::isAssoc Arr::isList Arr::join Arr::keyBy Arr::last Arr::map Arr::mapSpread Arr::mapWithKeys Arr::only Arr::onlyValues Arr::partition Arr::pluck Arr::prepend Arr::prependKeysWith Arr::pull Arr::push Arr::query Arr::random Arr::reject Arr::select Arr::set Arr::shuffle Arr::sole Arr::some Arr::sort Arr::sortDesc Arr::sortRecursive Arr::string Arr::take Arr::toCssClasses Arr::toCssStyles Arr::undot Arr::where Arr::whereNotNull Arr::wrap data_fill data_get data_set data_forget head last
숫자
Number::abbreviate Number::clamp Number::currency Number::defaultCurrency Number::defaultLocale Number::fileSize Number::forHumans Number::format Number::ordinal Number::pairs Number::parseInt Number::parseFloat Number::percentage Number::spell Number::spellOrdinal Number::trim Number::useLocale Number::withLocale Number::useCurrency Number::withCurrency
경로
URL
기타
abort abort_if abort_unless app auth back bcrypt blank broadcast broadcast_if broadcast_unless cache class_uses_recursive collect config context cookie csrf_field csrf_token decrypt dd dispatch dispatch_sync dump encrypt env event fake filled info literal logger method_field now old once optional policy redirect report report_if report_unless request rescue resolve response retry session tap throw_if throw_unless today trait_uses_recursive transform validator value view with when
배열 & 객체
`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']];
});