본문 바로가기
PHP

[PHP] explode()와 implode()로 문자열을 배열로, 배열을 문자열로 변환하기

by teamnova 2025. 8. 23.
728x90

PHP 개발을 하다 보면 콤마(,)나 다른 구분자로 연결된 하나의 긴 문자열을 다뤄야 할 때가 많습니다. 

예를 들어, 사용자가 입력한 태그 데이터("PHP,JSP,ASP,JavaScript")나 CSV 파일의 한 줄 같은 데이터가 있습니다.

 

반대로, 배열에 담긴 여러 데이터를 하나의 문자열로 합쳐서 데이터베이스에 저장하거나 화면에 출력해야 할 경우도 많습니다.
이럴 때 사용할 수 있는 explode()와 implode()에 대해 알아보겠습니다

 

explode() 함수는 특정 구분자를 기준으로 문자열을 잘라 배열(array)로 만들어주는 함수입니다.

 

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

 

$separator: 문자열을 나눌 기준이 되는 구분자입니다. (예: ",", " ", "|")
$string: 분리할 대상 문자열입니다.
$limit (선택 사항): 배열의 최대 개수를 제한합니다.
양수: 배열의 원소 개수가 최대 $limit개가 되며, 마지막 원소에는 나머지 모든 문자열이 포함됩니다.
음수: 마지막 -($limit)개의 원소를 제외하고 배열을 만듭니다.

 

예제코드

<?php
$fruits_str = "apple,banana,orange,mango";

// 콤마(,)를 기준으로 문자열을 분리하여 배열로 만듭니다.
$fruits_arr = explode(",", $fruits_str);

print_r($fruits_arr);
?>

 

시연영상

 

 

$limit을 사용하면 배열의 크기를 제어할 수 있어 특정 상황에서 유용합니다.

<?php
$data = "A:B:C:D:E";

// limit을 3으로 설정
// 배열 원소를 최대 3개로 제한하고, 마지막 원소에 나머지 문자열을 모두 담습니다.
$result1 = explode(":", $data, 3);
print_r($result1);

// limit을 -2로 설정
// 뒤에서부터 2개의 원소를 제외하고 배열을 만듭니다.
$result2 = explode(":", $data, -2);
print_r($result2);
?>

 

 

 

 

 implode(): 배열을 문자열로 합치기

 

implode(string $separator, array $array): string

$separator: 배열의 원소들 사이에 들어갈 연결 문자열(접착제)입니다.
$array: 문자열로 합칠 대상 배열입니다.

 

explode()로 만들었던 과일 배열을 다시 콤마와 공백(", ")으로 연결된 문자열로 만들어 보겠습니다.

<?php
$fruits_arr = ['apple', 'banana', 'orange', 'mango'];

// 배열의 각 원소를 ", "로 연결하여 하나의 문자열로 만듭니다.
$fruits_str = implode(", ", $fruits_arr);

echo $fruits_str;
?>

 

 

연결된 문자열을 다르게 하여 여러가지의 형태로 만들 수 있습니다.

 

<?php
$my_info = ["John Doe", "developer", "Seoul"];

// 공백으로 합치기
$profile_line = implode(" ", $my_info);
echo $profile_line . PHP_EOL;

// " | " 기호로 합치기
$log_data = implode(" | ", $my_info);
echo $log_data . PHP_EOL;
?>