array_combine — 키 배열과 값 배열로 배열 만들기
array_combine — 키 배열과 값 배열로 배열 만들기
배열 하나는 키로, 다른 배열 하나는 값으로 써서 연결된 배열을 만들고 싶을 때가 있어요. array_combine()이 바로 그 일을 해요. keys 배열의 값을 키로, values 배열의 값을 그에 대응하는 값으로 사용해 배열을 만들어 줘요.
출처: array_combine
본문
(PHP 5, PHP 7, PHP 8)
시그니처
array_combine(array $keys, array $values): array
매개변수
- keys — 키로 사용할 배열이에요. 키로 쓰기에 부적절한 값은 문자열로 변환돼요.
- values — 값으로 사용할 배열이에요.
반환 값
합쳐진 배열을 반환해요.
오류/예외
- PHP 8.0.0부터,
keys와values의 요소 개수가 일치하지 않으면ValueError가 발생해요. - PHP 8.0.0 이전에는 그 대신
E_WARNING이 발생했고 함수는false를 반환했어요.
변경 이력(Changelog)
| 버전 | 설명 |
|---|---|
| 8.0.0 | 각 배열의 요소 개수가 일치하지 않으면 이제 ValueError를 발생시켜요. 이전에는 false를 반환했어요. |
기본 예제
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
위 예제의 출력은 다음과 같아요.
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
주의할 점
키가 중복되면 나중에 나온 값이 이겨요. 예를 들어 array_combine(['a', 'a', 'b'], [1, 2, 3])는 ['a' => 2, 'b' => 3]이 돼요. 같은 키의 값들을 모두 보존하고 싶다면 직접 반복해서 여러 값을 배열로 모으는 함수가 필요해요.
또한 PHP 8.0부터는 두 배열의 크기가 다르면 예외가 발생하므로, 안전하게 처리하려면 호출 전에 count()로 개수를 비교하는 편이 좋아요.
더 알아보기
array_merge()(하나 이상의 배열 병합), array_walk()(배열의 각 요소에 사용자 함수 적용), array_values()(모든 값 반환), array_map()(주어진 배열의 요소들에 콜백 적용) 문서를 함께 확인해 보세요.