PHP 스프레드 연산자 활용 가이드: 배열 합치기 & 실전 팁
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

PHP 스프레드 연산자(`...`) 활용 가이드: 배열 합치기와 실전 팁

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

PHP 배열 처리 및 함수 매개변수 관리에 관심 있는 개발자(중간~고급 수준)

핵심 요약

  • ... 연산자는 배열을 인수 목록 또는 배열 리터럴로 펼치는 기능
  • 예: array_merge(...$data)
  • 다중 배열 병합...으로 간결하게 처리 가능
  • ['a', 'b', 'c'] = [...$arr1, ...$arr2]
  • 동적 매개변수 전달에 유리 (예: greet(...$params))
  • PHP 8+에서 키 기반 배열도 지원

섹션별 세부 요약

1. 스프레드 연산자 기본 개념

  • ... 연산자는 배열을 인수 목록 또는 배열 리터럴로 펼침
  • 예: $all = [...$letters1, ...$letters2]
  • array_merge(...$data)로 중첩 배열 병합 가능
  • $data 배열의 각 요소를 array_merge()의 인수로 전달

2. 중첩 배열 처리 예시

  • 다중 중첩 배열 펼치기:

```php

array_merge(...[...[['a', 'b'], ['s', 't', 'u']], ['c'], ['d', 'e']])

```

  • 내부 ...로 중첩 배열 펼침 후 외부 ...array_merge()에 전달

3. 함수 매개변수 전달 활용

  • 동적 매개변수 전달 예:

```php

function greet($name, $age) { ... }

$params = ['Alamin', 28];

greet(...$params); // "Hello, Alamin! You are 28."

```

  • PHP 8+에서 키 기반 배열도 지원:

```php

$data = ['name' => 'Alamin', 'email' => 'you@example.com'];

createUser(...$data);

```

4. 사용 불가능한 함수 제한사항

  • 단일 배열 인수를 기대하는 함수는 ... 사용 불가
  • array_map(), array_filter(), count(), sort()
  • 예시 실패 사례:

```php

array_map(...[['strtoupper'], ['a', 'b']]); // ❌ 오류 발생

```

5. 배열 평탄화 예시

  • array_walk_recursive() 활용한 중첩 배열 처리:

```php

function flatten(array $array): array { ... }

$nested = [['a', 'b'], ['c', ['d', 'e']], 'f'];

print_r(flatten($nested)); // ['a', 'b', 'c', 'd', 'e', 'f']

```

결론

  • ... 연산자는 배열 병합, 동적 인수 전달, 코드 가독성 향상에 유리
  • 단일 배열 인수를 기대하는 함수는 사용 불가 (예: array_map())
  • PHP 8+에서는 키 기반 배열도 지원하여 유연한 사용 가능