💻 자주 쓰는 PHP 함수

[PHP 함수] explode() 함수로 문자열을 배열로 변환하기

rhandy 2025. 3. 21. 11:57
728x90

PHP에서 문자열을 다룰 때 특정 구분자로 문자열을 나누어 배열로 변환하는 기능이 필요할 때가 많습니다.
예를 들어, 쉼표(,)로 구분된 데이터(csv) 처리, 사용자 입력 데이터 파싱, URL 처리 등 다양한 작업에서 사용됩니다.

이러한 기능을 수행하는 대표적인 함수가 바로 explode() 입니다.

이 글에서는 PHP explode() 함수의 사용법, 다양한 활용 예제, 유용한 팁과 주의사항을 체계적으로 정리하겠습니다. 


1. explode() 함수란?

기본 문법

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

매개변수 설명

매개변수 설명

$separator 문자열을 나눌 구분자
$string 분할할 원본 문자열
$limit (선택) 최대 분할 개수 (기본값: 문자열 전체)

반환값

  • 구분자로 문자열을 나눈 후 배열을 반환
  • $limit을 설정하면 최대 $limit개까지 나누고 나머지는 마지막 요소에 저장

2. explode() 기본 예제

🔹 쉼표(,)를 기준으로 문자열 나누기

<?php
$text = "Apple,Banana,Cherry";
$array = explode(",", $text);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => Apple
    [1] => Banana
    [2] => Cherry
)

➡ 문자열을 쉼표 ,를 기준으로 나누어 배열로 변환되었습니다.


🔹 공백( )을 기준으로 문자열 나누기

<?php
$text = "Hello PHP World";
$array = explode(" ", $text);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => Hello
    [1] => PHP
    [2] => World
)

➡ 공백( )을 기준으로 나누어 각 단어를 배열 요소로 저장했습니다.


3. explode()의 $limit 옵션 활용

🔹 $limit을 설정하여 최대 분할 개수 제한

<?php
$text = "one|two|three|four|five";
$array = explode("|", $text, 3);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => one
    [1] => two
    [2] => three|four|five
)

최대 3개의 요소로 분할되었으며, 남은 문자열은 마지막 요소에 포함되었습니다.


🔹 $limit이 음수일 때 (끝에서 제외)

<?php
$text = "apple|banana|cherry|grape|mango";
$array = explode("|", $text, -2);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

➡ 뒤에서 2개의 요소(grape, mango)를 제외하고 배열 생성되었습니다.


4. explode()의 실용적인 활용 예제

🔹 1) CSV 데이터 처리

<?php
$csv = "John,25,Developer,New York";
$data = explode(",", $csv);

echo "이름: $data[0]\n";
echo "나이: $data[1]\n";
echo "직업: $data[2]\n";
echo "도시: $data[3]\n";
?>

➡ 쉼표(,)로 구분된 데이터를 분할하여 배열로 변환할 수 있습니다.


🔹 2) URL 슬래시(/)를 기준으로 분할

https://example.com/products/electronics/laptop";
$segments = explode("/", $url);
print_r($segments);
?>

➡ URL을 /을 기준으로 나누어 경로 정보를 배열로 저장할 수 있습니다.


🔹 3) 사용자 입력 값 처리

<?php
$tags = "php,html,css,javascript";
$tagArray = explode(",", $tags);
print_r($tagArray);
?>

➡ 사용자 입력된 태그를 쉼표(,) 기준으로 나누어 배열로 저장할 수 있습니다.


🔹 4) 여러 개의 구분자 처리 (preg_split() 활용)

explode()는 하나의 구분자만 사용할 수 있지만, 여러 개의 구분자를 사용할 때는 preg_split()을 활용해야 합니다.

<?php
$text = "apple, banana; grape|orange";
$splitArray = preg_split("/[,;|]/", $text);
print_r($splitArray);
?>

🔹 실행 결과

Array
(
    [0] => apple
    [1] => banana
    [2] => grape
    [3] => orange
)

➡ 쉼표(,), 세미콜론(;), 파이프(|) 모두 구분자로 사용하여 문자열을 분할할 수 있습니다.


5. explode()와 implode() 비교

함수 설명

explode() 문자열을 특정 구분자로 나누어 배열로 변환
implode() 배열 요소를 특정 구분자로 연결하여 문자열로 변환

예제 (explode() → implode() 변환)

<?php
$text = "Apple,Banana,Cherry";
$array = explode(",", $text);

$newString = implode(" - ", $array);
echo $newString;
?>

🔹 실행 결과

Apple - Banana - Cherry

➡ explode()로 배열을 만든 후, 다시 implode()로 문자열을 만들 수 있습니다.


6. explode() 사용 시 주의할 점

구분자가 문자열 내에 없으면 배열 요소 1개 반환

<?php
$text = "Hello World";
$array = explode(",", $text);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => Hello World
)

➡ 쉼표(,)가 없기 때문에 원본 문자열이 그대로 배열 요소로 저장됨.


연속된 구분자는 빈 요소를 생성

<?php
$text = "apple,,banana,grape";
$array = explode(",", $text);
print_r($array);
?>

🔹 실행 결과

Array
(
    [0] => apple
    [1] => 
    [2] => banana
    [3] => grape
)

➡ explode()는 연속된 구분자가 있을 경우 빈 문자열 요소를 포함합니다.


공백 제거가 필요하면 array_filter() 사용

<?php
$text = "apple,,banana,grape";
$array = array_filter(explode(",", $text));
print_r($array);
?>

➡ array_filter()를 사용하면 빈 요소가 제거된 배열을 얻을 수 있음.


7. 결론

PHP의 explode() 함수는 문자열을 특정 구분자로 나누어 배열로 변환하는 필수적인 함수입니다.
이를 활용하면 CSV 데이터 처리, 사용자 입력값 검증, URL 분석 등 다양한 작업을 효율적으로 수행할 수 있습니다.

 

📌 핵심 요약
✔️ explode()는 문자열을 특정 구분자로 나누어 배열로 반환
✔️ $limit을 사용하면 최대 분할 개수를 지정 가능
✔️ 다중 구분자는 preg_split()을 활용
✔️ 연속된 구분자는 빈 요소를 포함할 수 있음

이제 explode()를 활용하여 더욱 효율적인 PHP 개발을 해보세요! 🚀

💡 도움이 되셨다면 공유해주세요! 😊

 

728x90