[PHP] 문자열을 분해해서 배열로 담는 방법 feat. str_split
PHP 를 이용해 이것저것 해보다가 문자열을 하나하나 분해해서 배열로 담을 필요성이 생겼습니다.
문제 발생
생각없이 이렇게 하면 되겠지~ 하면서 explode
함수를 아래와 같이 써봤는데,
$str = 'thisissparta';
$arrStr = explode('', $str);
반환 되는 값이 아무것도 없었습니다. 절망..
그래서 php.net 에서 explode 문서를 보니까,
…
If separator is an empty string (“”), explode() throws a ValueError.
…
너무도 친절하게 구분자로 아무 것도 안 넣으면, 에러가 나온다고 하네요.
그래서 찾다가 나온게 바로 str_split
함수였습니다.
str_split
string
을 split
해준다는 직관적인 함수명을 가진 str_split
의 사용법은 아주 간단합니다.
$str = 'thisissparta';
$arrStr = str_split($str);
이렇게 되면 $arrStr
에는 각 글자가 모두 쪼개져서 아래와 같이 담기게 됩니다.
Array
(
[0] => t
[1] => h
[2] => i
[3] => s
[4] => i
[5] => s
[6] => s
[7] => p
[8] => a
[9] => r
[10] => t
[11] => a
)
아주 쉽죠?
주의사항
다만 아래의 사항은 유의해야겠습니다.
- 문자열에
this is sparta
처럼 중간에 빈 칸이 있을 경우, 당연하게도 배열에 값이 빈칸인 항목이 추가됩니다. - 문자열이 한글일 경우 제대로 쪼개지지 않고, 결과물에는 빈칸이 들어갑니다. 그것도 여러개.. 그러니 한글 문자열을 쪼개고 싶다면,
mb_str_split
함수를 사용하도록 합시다. 물론 사용법은 똑같습니다.
끝.
댓글 남기기