PHP에서 생성한 배열을 JavaScript 함수나 변수로 전달해야 하는 경우가 자주 있습니다. 이때 가장 간단하고 안정적인 방법은 PHP의 json_encode() 함수를 활용하는 것입니다. 아래 코드를 통해 PHP 배열을 그대로 JavaScript 변수에 담을 수 있습니다.
<script>
var var_name = <?php echo json_encode($php_variable); ?>;
</script>AJAX 응답으로 받은 JSON 문자열 처리하기
반대로, AJAX 요청 등을 통해 서버에서 JSON 형태의 문자열을 받아온 뒤 이를 JavaScript 객체로 변환해야 하는 경우에는 JSON.parse() 메서드를 사용하면 됩니다.
var my_data = "<JSON-String>"; var my_var = JSON.parse(my_data);
예제
실제 동작 과정을 예제를 통해 살펴보겠습니다. 먼저 PHP에서 배열을 생성한 후, json_encode()로 변환하여 JavaScript 변수에 할당하고, 반복문으로 배열 요소를 출력합니다.
<?php
// PHP 배열 생성
$sample_array = array(
0 => "Hello",
1 => "there",
)
?>
<script>
// json_encode로 변환된 배열을 JavaScript 변수에 저장
var passed_array = <?php echo json_encode($sample_array); ?>;
// 배열의 각 요소를 화면에 출력
for(var i = 0; i < passed_array.length; i++){
document.write(passed_array[i]);
}
</script>실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Hellothere
정리
PHP 배열을 JavaScript로 전달할 때는 json_encode()를 사용해 JSON 형식으로 변환하는 것이 표준적인 방법입니다. 이 방식은 문자열, 숫자뿐 아니라 다차원 배열이나 연관 배열(객체)도 문제없이 처리할 수 있어 데이터 교환 시 유용하게 활용됩니다.