Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menukar tatasusunan PHP berbilang dimensi dengan cekap kepada objek SimpleXML?

Bagaimanakah saya boleh menukar tatasusunan PHP berbilang dimensi dengan cekap kepada objek SimpleXML?

Barbara Streisand
Barbara Streisandasal
2024-12-18 21:54:14976semak imbas

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

Menukar Tatasusunan kepada SimpleXML dalam PHP

Apabila bekerja dengan data XML dalam PHP, mungkin diperlukan untuk menukar tatasusunan kepada objek SimpleXML untuk memudahkan pemprosesan dan manipulasi.

Fungsi untuk Array ke XML Penukaran

Berikut ialah fungsi PHP yang boleh digunakan untuk menukar tatasusunan berbilang dimensi kepada objek 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"));
        }
     }
}

Contoh Penggunaan

Pertimbangkan tatasusunan berikut:

$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'
            )
        )
    )
);

Untuk menukar tatasusunan ini kepada XML, anda boleh mencipta objek SimpleXMLElement:

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

Kemudian, panggil fungsi array_to_xml:

array_to_xml($data, $xml_data);

Ini akan menjana XML berikut:

<?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>

Anda boleh kemudian simpan atau proses XML yang dijana mengikut keperluan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar tatasusunan PHP berbilang dimensi dengan cekap kepada objek SimpleXML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn