PHP 다차원 배열을 JavaScript로 변환하기
PHP에서 생성한 배열은 JavaScript에서 그대로 활용할 수 있습니다. 단일 배열뿐만 아니라 다차원(중첩) 배열도 문제없이 변환할 수 있으며, 이를 위해 json_encode() 함수를 사용합니다.
json_encode()는 PHP 배열을 JSON 형식의 문자열로 변환해 주는 함수로, JSON은 JavaScript가 기본적으로 이해할 수 있는 데이터 형식이기 때문에 별도의 파싱 없이 바로 사용할 수 있다는 장점이 있습니다.
1. PHP 다차원 배열 준비
먼저 변환할 다차원 PHP 배열을 정의합니다. 아래 예제는 이름과 이메일 주소를 담은 중첩 배열입니다.
$myArr = array(
array('Amit', 'amit@example.com'),
array('Rahul', 'rahul@example.com'),
);2. json_encode()로 JavaScript에 전달
이제 json_encode()를 사용해 PHP 배열을 JavaScript 변수에 할당합니다. PHP 코드가 서버에서 실행되면서 배열이 JSON 문자열로 출력되고, 이것이 곧바로 JavaScript 배열이 됩니다.
<script> var arr = <?php echo json_encode($myArr); ?>; </script>
위 코드가 브라우저에 도달하면 실제로는 다음과 같은 JavaScript 코드로 변환됩니다.
<script> var arr = [["Amit","amit@example.com"],["Rahul","rahul@example.com"]]; </script>
3. 변환된 배열 접근하기
변환이 완료되면 일반적인 JavaScript 배열과 동일한 방식으로 데이터에 접근할 수 있습니다. 예를 들어 두 번째 사용자의 이메일 주소를 출력하려면 다음과 같이 작성합니다.
document.write(arr[1][1]); // 결과: rahul@example.com
배열 인덱스는 0부터 시작하므로 arr[1]은 두 번째 하위 배열('Rahul' 관련 데이터)을 가리키고, 여기서 다시 [1]을 붙이면 해당 배열의 두 번째 요소인 이메일 주소에 접근하게 됩니다.
정리
PHP와 JavaScript 간에 데이터를 주고받을 때 json_encode()를 활용하면 다차원 배열도 손쉽게 전달할 수 있습니다. 다만 보안이 중요한 환경에서는 XSS 방지를 위해 JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP 같은 옵션 플래그를 함께 사용하는 것이 좋습니다.