PHPINFO

PHP 문자열 배열로 변환, 배열을 문자열로 변환 본문

PHP

PHP 문자열 배열로 변환, 배열을 문자열로 변환

2016. 6. 21. 15:49
반응형

PHP 개발을 하다 보면 문자열을 배열로 변환하거나, 또는 배열을 문자열로 변환해서 처리하는 경우가 있습니다.

 

PHP 문자열 배열로 변환, 배열을 문자열로 변환 예시

아래의 몇 가지 예시를 통해 PHP 문자열을 배열로 변환하는 방법, PHP배열을 문자열로 변환하는 방법에 대해서 알아보겠습니다.

 

예 1) 문자열을 배열로 변환

<?php
$str = 'apple,mango,tomato,banana';
$str_arr = explode(',', $str);

echo '<pre>';
var_dump($str_arr);
echo '</pre>';
 

[결과] 아래와 같이 배열로 성공적으로 변환된 것을 볼 수 있습니다.

array(4) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(5) "mango"
  [2]=>
  string(6) "tomato"
  [3]=>
  string(6) "banana"
}
 
예 2) 공백(스페이스)을 포함하는 문자열을 배열로 변환 
<?php
$str = 'apple, mango, tomato,   banana';
$str_arr = explode(',', $str);

echo '<pre>';
var_dump($str_arr);
echo '</pre>';
 

[결과] 아래와 같이 배열로 성공적으로 변환되었지만, 각 요소들을 보면 공백(스페이스) 그대로 포함되어 있습니다.

array(4) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) " mango"
  [2]=>
  string(7) " tomato"
  [3]=>
  string(9) "   banana"
}
 
예 3) 앞뒤 콤마를 포함하는 문자열을 배열로 변환 
<?php
$str = ',apple, mango, tomato,   banana,';
$str_arr = explode(',', $str);

echo '<pre>';
var_dump($str_arr);
echo '</pre>';
 

[결과] 아래와 같이 배열로 성공적으로 변환되었지만, 배열 첫 번째 요소와 마지막 요소에 빈 값이 들어가 있다.

array(6) {
  [0]=>
  string(0) ""
  [1]=>
  string(5) "apple"
  [2]=>
  string(6) " mango"
  [3]=>
  string(7) " tomato"
  [4]=>
  string(9) "   banana"
  [5]=>
  string(0) ""
}


예 4) 문자열에서 공백 및 앞뒤 콤마(,)를 제거하여 배열로 변환 

<?php
$str = ',apple, mango, tomato,   banana,';
$str = trim($str); // 문자열 앞 뒤 공백 제거
$str = ltrim($str,','); // 문자열 맨 앞 콤마(,) 제거
$str = rtrim($str,','); // 문자열 맨 마지막 콤마(,) 제거
$str = str_replace(array("\r\n","\r","\n"),'',$str); // 개행문자 제거
$str_arr = array_map('trim', explode(',', $str)); //문자열을 배열로 변환 & 각 배열요소 트림(trim) 처리

echo '<pre>';
var_dump($str_arr);
echo '</pre>';
 

[결과] 아래와 같이 배열로 성공적으로 변환되었습니다.

array(4) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(5) "mango"
  [2]=>
  string(6) "tomato"
  [3]=>
  string(6) "banana"
}

 

배열을 문자열로 변환하는 것은 예 4)에서 처리된 배열을 implode 함수를 이용해서 처리하면 됩니다.

<?php
$str = ',apple, mango, tomato,   banana,';
$str = trim($str); // 문자열 앞 뒤 공백 제거
$str = ltrim($str,','); // 문자열 맨 앞 콤마(,) 제거
$str = rtrim($str,','); // 문자열 맨 마지막 콤마(,) 제거
$str = str_replace(array("\r\n","\r","\n"),'',$str); // 개행문자 제거
$str_arr = array_map('trim', explode(',', $str)); //문자열을 배열로 변환 & 각 배열요소 트림(trim) 처리

// echo '<pre>';
// var_dump($str_arr);
// echo '</pre>';

$str = implode(',', $str_arr);
var_dump($str);
 

[결과] 아래와 같이 문자열로 성공적으로 변환되었다.

string(25) "apple,mango,tomato,banana"
 

경우에 따라서는 예 2) 예 3) 도 필요한 경우가 있지만, 예 4)처럼 공백 및 앞 뒤의 콤마를 제거하여 배열로 변환하는 처리가 더 필요할 것 같아서 정리해봤습니다.

 

Comments