Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP로 쉼표로 구분된 문자열을 배열로 분할하는 방법 (preg_split & explode)

PHP에서는 preg_split 또는 explode 함수를 사용하여 쉼표로 구분된 문자열을 값 배열로 손쉽게 분할할 수 있습니다. 두 함수의 실제 동작 방식을 예제 코드와 함께 살펴보겠습니다.

예제 코드

<?php
$my_string = "456,789,23, 4, 019";
$my_str_arr = preg_split ("/,/", $my_string);
print_r("The array is ");
print_r($my_str_arr);
$my_string = "00, 876, 5432, 1234, 0";
$my_str_arr = explode (",", $my_string);
print_r("The array is ");
print_r($my_str_arr);
?>

실행 결과

The array is Array
(
    [0] => 456
    [1] => 789
    [2] => 23
    [3] => 4
    [4] => 019
)
The array is Array
(
    [0] => 00
    [1] => 876
    [2] => 5432
    [3] => 1234
    [4] => 0
)

코드 설명

먼저 숫자들이 쉼표로 구분된 문자열을 변수에 저장합니다. 그다음 preg_split 함수를 호출하여 정규 표현식 패턴 /,/를 기준으로 문자열을 분할합니다. 이 함수는 정규 표현식을 지원하기 때문에 단순한 쉼표뿐 아니라 공백이 포함된 패턴이나 여러 개의 구분자도 처리할 수 있다는 장점이 있습니다.

두 번째 방법은 explode 함수를 사용하는 것입니다. explode는 정규 표현식 없이 지정된 구분자(여기서는 쉼표)가 나타날 때마다 문자열을 잘라내어 배열로 반환합니다. 단순히 하나의 고정 구분자만 필요하다면 explode가 더 빠르고 간결한 선택입니다.

참고: 공백 제거하기

위 예제의 입력 문자열처럼 쉼표 뒤에 공백이 있는 경우, 분할된 배열 요소 앞에 불필요한 공백이 남게 됩니다. 이럴 때는 array_maptrim을 조합하면 깔끔하게 처리할 수 있습니다.

<?php
$my_string = "456,789,23, 4, 019";
$my_str_arr = array_map('trim', explode(",", $my_string));
print_r($my_str_arr);
?>

이렇게 하면 모든 배열 요소에서 앞뒤 공백이 제거되어 ["456", "789", "23", "4", "019"]와 같은 깔끔한 결과를 얻을 수 있습니다.