Buon pomeriggio a tutti, devo riordinare il file prova.xml in base al contenuto di un elemento (ord)
non ho trovato documentazione sul riordinamento diretto di file xml quindi ho provato a riordinare l'array multidimensionale.

Il file xml è strutturato così:

codice:
<?xml version="1.0"?>
<root>
  <foto>
    <ord>2</ord>
    <descrizione>Descrizione foto 1</descrizione>
    <url>foto/001.jpg</url>
    <permesso>1</permesso>
    <dimensioni>656 x 500</dimensioni>
  </foto>
  <foto>
    <ord>3</ord>
    <descrizione>Descrizione foto 2</descrizione>
    <url>foto/002.jpg</url>
    <permesso>1</permesso>
    <dimensioni>760 x 493</dimensioni>
  </foto>
  <foto>
    <ord>6</ord>
    <descrizione>Descrizione foto 3</descrizione>
    <url>foto/003.jpg</url>
    <permesso>1</permesso>
    <dimensioni>non dichiarate</dimensioni>
  </foto>
</root>
ma se uso questo codice

codice:
$filexml='prova.xml';
$xml = simplexml_load_file($filexml);

foreach($xml->foto as $foto){
	$ord[]=$foto->ord;
	$permesso[]=$foto->permesso;
	$descrizione[]=$foto->descrizione;
	$url[]=$foto->url;
	$dimensioni[]=$foto->dimensioni;
}

#array_multisort($ord,SORT_ASC,SORT_NUMERIC, $permesso,SORT_ASC,SORT_NUMERIC, $xml);
ottengo il messaggio:
Warning: array_multisort() [function.array-multisort]: Argument #7 is expected to be an array or a sort flag in /var/www/xml/mio/albumXML/riordina.php on line 15

l'output di print_r($xml) è:

codice:
SimpleXMLElement Object
(
    [foto] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [ord] => 20
                    [descrizione] => Descrizione foto 1
                    [url] => foto/001.jpg
                    [permesso] => 1
                    [dimensioni] => 656 x 500
                )

            [1] => SimpleXMLElement Object
                (
                    [ord] => 30
                    [descrizione] => Descrizione foto 2
                    [url] => foto/002.jpg
                    [permesso] => 1
                    [dimensioni] => 760 x 493
                )

            [2] => SimpleXMLElement Object
                (
                    [ord] => 10
                    [descrizione] => Descrizione foto 3
                    [url] => foto/003.jpg
                    [permesso] => 1
                    [dimensioni] => non dichiarate
                )
				
        )

)
allora ho provato a modificare il codice così:

codice:
$filexml='prova.xml';
$xml = simplexml_load_file($filexml);

foreach($xml as $xml_2)$xml_arr[]=$xml_2 //creo un nuovo array dall'oggetto $xml

foreach($xml->foto as $foto){
	$ord[]=$foto->ord;
	$permesso[]=$foto->permesso;
	$descrizione[]=$foto->descrizione;
	$url[]=$foto->url;
	$dimensioni[]=$foto->dimensioni;
}

array_multisort($ord,SORT_ASC,SORT_NUMERIC, $permesso,SORT_ASC,SORT_NUMERIC, $xml_arr);
e in effetti il warning sparisce e se stampo print_r($xml_arr); vedo che l'array è stato ordinato correttamente, il problema è che per salvare le modifiche dovrei trasformare $xml_arr in un nuovo oggetto simplexml oppure in una stringa xml!
Come fare?
Esiste un'altro metodo per riordinare file xml con php?
Sbaglio il procedimento?
Grazie in anticipo a chi vorrà aiutarmi