Convert an array to XML or JSON

后端 未结 4 1090
执念已碎
执念已碎 2020-12-19 22:57

I want to convert the array below

Array
(
    [city] => Array
        (
            [0] => Array
                (
                    [0] => Rd
            


        
4条回答
  •  感情败类
    2020-12-19 23:38

    This works for associative arrays.

        function array2xml($array, $node_name="root") {
        $dom = new DOMDocument('1.0', 'UTF-8');
        $dom->formatOutput = true;
        $root = $dom->createElement($node_name);
        $dom->appendChild($root);
    
        $array2xml = function ($node, $array) use ($dom, &$array2xml) {
            foreach($array as $key => $value){
                if ( is_array($value) ) {
                    $n = $dom->createElement($key);
                    $node->appendChild($n);
                    $array2xml($n, $value);
                }else{
                    $attr = $dom->createAttribute($key);
                    $attr->value = $value;
                    $node->appendChild($attr);
                }
            }
        };
    
        $array2xml($root, $array);
    
        return $dom->saveXML();
    }
    

提交回复
热议问题