Maison > développement back-end > tutoriel php > Comment puis-je convertir efficacement un tableau PHP multidimensionnel en un objet SimpleXML ?

Comment puis-je convertir efficacement un tableau PHP multidimensionnel en un objet SimpleXML ?

Barbara Streisand
Libérer: 2024-12-18 21:54:14
original
969 Les gens l'ont consulté

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

Conversion de tableaux en SimpleXML en PHP

Lorsque vous travaillez avec des données XML en PHP, il peut être nécessaire de convertir des tableaux en objets SimpleXML pour faciliter traitement et manipulation.

Fonction pour Array to XML Conversion

Voici une fonction PHP qui peut être utilisée pour convertir des tableaux multidimensionnels en objets 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"));
        }
     }
}
Copier après la connexion

Exemple d'utilisation

Considérez le tableau suivant :

$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'
            )
        )
    )
);
Copier après la connexion

Pour convertir ce tableau en XML, vous pouvez créer un Objet SimpleXMLElement :

$xml_data = new SimpleXMLElement('<?xml version="1.0"?><student_info></student_info>');
Copier après la connexion

Ensuite, appelez la fonction array_to_xml :

array_to_xml($data, $xml_data);
Copier après la connexion

Cela générera le XML suivant :

<?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>
Copier après la connexion

Vous pourrez ensuite enregistrer ou traiter le XML généré selon les besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal