Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 배열을 SimpleXML로 변환하는 방법 (array_walk_recursive() 활용)

PHP 개발 중 연관 배열이나 다차원 배열을 XML 형식으로 변환해야 하는 경우가 종종 있습니다. 이럴 때 PHP에 기본으로 내장된 array_walk_recursive() 함수를 사용하면 매우 간단하게 해결할 수 있습니다.

array_walk_recursive() 함수란?

array_walk_recursive()는 PHP의 내장 함수로, 다차원 배열의 모든 리프(leaf) 요소를 재귀적으로 순회하면서 지정한 콜백 함수를 각 요소에 적용합니다. 이 함수를 SimpleXML과 함께 사용하면 배열의 키(key)는 XML 엘리먼트(태그)로, 값(value)은 해당 엘리먼트의 내용으로 자동 변환됩니다.

간단한 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

예제

<?php
$array = array (
  'name' => 'alex',
  'empdept' => 'account',
  'address' => array (
    'city' => 'michigan'
  ),
);

// root 엘리먼트를 가지는 XML 객체를 생성합니다.
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($array, array ($xml, 'addChild'));
print $xml->asXML();
?>

출력 결과

<?xml version="1.0"?>
<root>
<name>alex</name>
<empdept>account</empdept>
<city>michigan</city>
</root>

참고 사항

실행 중 "PHP Fatal error: Uncaught Error: Class 'SimpleXMLElement' not found"와 같은 오류 메시지가 표시된다면, 서버에 XML 확장 모듈이 설치되어 있지 않은 것입니다. 이 경우 php-xml 또는 php-simplexml 패키지를 설치한 뒤 웹 서버를 재시작하면 정상적으로 동작합니다.