implode()
함수 사용법
implode()
함수는
배열의 요소들을 하나의 문자열로 합치는(변환하는) 함수입니다.
이 함수는 주어진 배열의 각 요소를 매개변수로 지정한 구분자로 연결하여 하나의 문자열로 반환합니다.
$colors = ['red', 'green', 'blue'];
$comma_separated = implode(', ', $colors); // ','구분자로 연결
echo $comma_separated; // 출력: 'red, green, blue'
이 예제에서는 $colors
배열의 요소들이 ', '
구분자를 사이에 두고 하나의 문자열로 합쳐집니다. 그 결과는 'red, green, blue'
라는 문자열이 됩니다.
참고!
이 함수는 join()
이라는 이름으로도 사용됩니다. 두 이름은 동일하게 작동합니다.
implode()
함수의 형식은 다음과 같습니다.
구문
implode(string $separator, array $array): string
매개변수
$separator |
옵션. 배열의 각 요소를 연결할 때 사용될 구분자입니다.
기본값은 빈 문자열( '' )입니다. |
---|---|
$array |
문자열로 합칠 배열입니다. |
반환 값
implode()
함수는 배열의 요소들을 순서대로 구분자로 합쳐서 생성한 문자열을 반환합니다.
변경 이력
버전 | 설명 |
---|---|
8.0.0 | 배열 다음에 구분자를 전달하는 방식은 더 이상 지원되지 않습니다. |
7.4.0 | 배열 다음에 구분자를 전달하는 방식(즉, 이전 방식의 인자 순서)은 사용 중단(deprecated)되었습니다. |
implode()
함수는 원래 이렇게 사용합니다.
implode(string $separator, array $array);
하지만 과거에는 아래처럼도 쓸 수 있었습니다.
implode(array $array, string $separator); // 예전 방식 (지금은 비권장 또는 제거됨)
사용 예제
implode()
함수의 사용법에 대해 알아보겠습니다.
기본 사용법
$fruits = ['apple', 'banana', 'orange'];
$fruits_string = implode(', ', $fruits);
echo $fruits_string; // 출력: 'apple, banana, orange'
위 코드는 배열 $fruits
의 각 요소를 쉼표와 공백( ', '
)으로 구분하여 하나의 문자열로 만들어서 출력합니다.
배열의 요소를 HTML 목록으로 연결하기
$items = ['Item 1', 'Item 2', 'Item 3'];
$html_list = '<ul><li>' . implode('</li><li>', $items) . '</li></ul>';
echo "HTML List:\n" . $html_list;
- Item 1
- Item 2
- Item 3
위 코드는 배열 $items
의 각 요소를 HTML 목록으로 만들어서 출력합니다.
implode()
함수에 제공된 배열에 객체가 포함될 수 있음
class StringArray {
protected $title;
public function __construct($title)
{
$this->title = $title;
}
public function __toString()
{
return $this->title;
}
}
$array = [
new StringArray('봄'),
new StringArray('여름'),
new StringArray('가을'),
new StringArray('겨울')
];
echo implode('; ', $array); // 출력: '봄; 여름; 가을; 겨울'
빈 배열 처리
$empty = [];
$result = implode(', ', $empty);
var_dump($result); // 출력: string(0) ""
배열이 비어 있을 경우, implode()
함수는 오류를 발생시키지 않고 빈 문자열을 반환합니다. 이러한 동작은 안전하지만, 별도의 처리를 하지 않으면 의도하지 않은 빈 출력이 발생할 수 있으므로 주의해야 합니다.
SQL 쿼리 문자열 만들기
$ids = [10, 20, 30];
$query = "SELECT * FROM users WHERE id IN (" . implode(', ', $ids) . ")";
echo $query;
// 출력: SELECT * FROM users WHERE id IN (10, 20, 30)
이 예제는 배열 값을 이용해 동적으로 SQL 쿼리를 생성하는 실제 사용 사례입니다. implode()
함수는 배열의 ID들을 쉼표로 구분된 문자열로 만들어 주어, 쿼리 조건에 활용할 수 있도록 도와줍니다. 다만 사용자 입력을 사용할 경우, SQL 인젝션 방지를 위해 반드시 적절한 검증이나 이스케이프 처리를 해야 합니다.
주의할 점
implode()
함수에 제공된 배열에 부울(boolean) 타입의 요소가 포함될 수 있다는 점입니다. 이 경우 예상하는 못한 결과가 발생할 수 있습니다.
$booleans_array = [true, true, false, false, true];
$result = implode('', $booleans_array);
var_dump($result); // 출력: string(3) '111'
// true는 '1'이 되고, false는 아무것도 되지 않습니다.