>백엔드 개발 >PHP 튜토리얼 >다차원 PHP 배열을 SimpleXML 개체로 효율적으로 변환하려면 어떻게 해야 합니까?

다차원 PHP 배열을 SimpleXML 개체로 효율적으로 변환하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-18 21:54:14971검색

How can I efficiently convert a multi-dimensional PHP array into a SimpleXML object?

PHP에서 배열을 SimpleXML로 변환

PHP에서 XML 데이터로 작업할 때 용이한 작업을 위해 배열을 SimpleXML 객체로 변환해야 할 수 있습니다. 처리 및 조작.

Array to XML 기능 변환

다음은 다차원 배열을 SimpleXML 객체로 변환하는 데 사용할 수 있는 PHP 함수입니다:

function array_to_xml( $data, &$xml_data ) {
    foreach( $data as $key => $value ) {
        if( is_array($value) ) {
            if( is_numeric($key) ){
                $key = 'item'.$key; //dealing with <0/>..<n/> issues
            }
            $subnode = $xml_data->addChild($key);
            array_to_xml($value, $subnode);
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
     }
}

사용 예

다음 배열을 고려하세요.

$data = array('total_stud' => 500,
    'student' => array(
        0 => array(
            'id' => 1,
            'name' => 'abc',
            'address' => array(
                'city' => 'Pune',
                'zip' => '411006'
            )
        ),
        1 => array(
            'id' => 2,
            'name' => 'xyz',
            'address' => array(
                'city' => 'Mumbai',
                'zip' => '400906'
            )
        )
    )
);

이 배열을 다음으로 변환하려면 XML의 경우 SimpleXMLElement 개체를 생성할 수 있습니다.

$xml_data = new SimpleXMLElement('<?xml version="1.0"?><student_info></student_info>');

그런 다음 array_to_xml 함수를 호출합니다.

array_to_xml($data, $xml_data);

이렇게 하면 다음 XML이 생성됩니다.

<?xml version="1.0"?>
<student_info>
    <total_stud>500</total_stud>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Pune</city>
            <zip>411006</zip>
        </address>
    </student>
    <student>
        <id>1</id>
        <name>abc</name>
        <address>
            <city>Mumbai</city>
            <zip>400906</zip>
        </address>
    </student>
</student_info>

그런 다음 필요에 따라 생성된 XML을 저장하거나 처리할 수 있습니다.

위 내용은 다차원 PHP 배열을 SimpleXML 개체로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.