переупорядочение атрибутов массива, а затем сохранение обратно в XML в php

У меня есть этот XML:

<picture id="2"> <title>B</title> </picture> <picture id="3"> <title>C</title> </picture> <picture id="0"> <title>A</title> </picture> 

Попытка добиться этого:

  <picture id="1"> <title>B</title> </picture> <picture id="2"> <title>C</title> </picture> <picture id="0"> <title>A</title> </picture> 

Используя это, чтобы получить список значений атрибута id:

 $objXML = new SimpleXMLElement(XML_FILE_NAME, null, true); $picture = $objXML->xpath('picture'); $arrayCurrent = array(); foreach($picture as $value) { $arrayCurrent[] = (string)$value['id']; } sort($arrayCurrent); // put XML into numerical 'id' order print_r($arrayCurrent); 

Он возвращает: Array ([0] => 0 [1] => 2 [2] => 3) Любые идеи, как переиндексировать так: 0, 1, 2 и сохранять соответствующие атрибуты «id» обратно в их правильные позиции в XML-документе?

Спасибо, Энди

В XML порядке узлов на одном уровне не имеет значения, тогда вы не можете сделать это по теории, по практике пользовательской другой библиотеки.

Численный порядок идентификаторов поддерживается и выполняется последовательно:

 $objXML = new SimpleXMLElement(XML_FILE_NAME, null, true); $picture = $objXML->xpath('picture'); usort($picture, create_function('$a,$b', 'return (string)$a["id"] - (string)$b["id"];')); foreach ($pictures as $index => $node) $node["id"] = $index;