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부터, keysvalues의 요소 개수가 일치하지 않으면 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()(주어진 배열의 요소들에 콜백 적용) 문서를 함께 확인해 보세요.