【发布时间】:2010-11-11 19:01:49
【问题描述】:
可能的重复:
reordering array attributes then save back to XML in php
php loop not working as expected
我有这个 XML:
<picture id="2">
<title>B</title>
</picture>
<picture id="3">
<title>C</title>
</picture>
<picture id="0">
<title>A</title>
</picture>
试图实现这个 XML:
<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 没有按数字顺序排列的 id。数字顺序为 0 1 2,并且您写道希望您的 XML id 顺序为 1 2 0。
-
这几乎是同一作者提出的至少两个问题的重复。 =\