首頁 >後端開發 >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 物件方便SimpleXML使用處理和操作。

數組到XML 的函數轉換

以下是一個PHP 函數,可用來將多維數組轉換為SimpleXML 物件:

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