JSON 형식으로 저장된 문자열 배열에서 불필요한 따옴표를 제거하고, 이를 하나의 문자열로 합쳐서 출력해야 하는 경우가 종종 있습니다. PHP에서는 json_decode() 함수를 활용하면 간단하게 처리할 수 있습니다.
문제 상황
다음과 같은 문자열 배열이 있다고 가정해 보겠습니다.
$full_name= '["John Doe","David Miller","Adam Smith"]';
위 배열을 다음과 같이 하나의 문자열로 변환하고자 합니다.
John Doe, David Miller, Adam Smith
해결 방법
이 문제는 크게 세 단계로 해결할 수 있습니다.
1단계: json_decode()로 배열 변환
json_decode() 함수는 JSON 형식의 문자열을 PHP 배열로 변환해 줍니다. 두 번째 인수에 true를 전달하면 연관 배열이 아닌 일반 배열로 반환됩니다.
2단계: array_map()과 array_filter()로 정리
array_map('trim', ...)으로 각 요소의 앞뒤 공백을 제거하고, array_filter()로 빈 값을 걸러냅니다.
3단계: implode()로 문자열 합치기
마지막으로 implode() 함수를 사용해 배열 요소를 쉼표와 공백(', ')으로 구분된 하나의 문자열로 만듭니다.
전체 예제 코드
<!DOCTYPE html>
<html>
<body>
<?php
$full_name = '["John Doe","David Miller","Adam Smith"]';
$full_name = json_decode($full_name);
$filterData = array_filter(array_map('trim', $full_name));
$output = implode(', ', $filterData);
echo "하나의 문자열로 합친 결과 = ", $output;
?>
</body>
</html>실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
하나의 문자열로 합친 결과 = John Doe, David Miller, Adam Smith
마무리
이처럼 json_decode(), array_map(), array_filter(), implode() 함수를 조합하면 JSON 형식의 문자열 배열에서 따옴표와 같은 불필요한 문자를 손쉽게 제거하고, 원하는 구분자로 깔끔하게 정리된 하나의 문자열을 얻을 수 있습니다. 특히 API 응답 데이터나 CSV 변환 작업 시 유용하게 활용할 수 있는 패턴입니다.