Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menukar tatasusunan PHP berbilang dimensi dengan cekap kepada objek SimpleXML?
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!