可以使用sort()函数来按属性对SimpleXML数组进行排序。首先,需要将SimpleXML对象转换为数组,然后使用usort()函数来进行排序。下面是一个示例代码,用于按“name”属性对XML节点进行排序。
$xml = simplexml_load_file("example.xml");
// 将SimpleXML对象转换为数组
$data = json_decode(json_encode($xml), true);
// 自定义排序函数
function cmp($a, $b) {
return strcmp((string)$a['name'], (string)$b['name']);
}
// 对数组进行排序
usort($data['items']['item'], 'cmp');
// 将数组转换回SimpleXML对象
$xml = new SimpleXMLElement(' ');
array_walk_recursive($data, array ($xml, 'addChild'));
echo $xml->asXML();
在这个例子中,我们首先将SimpleXML对象转换为数组。然后,定义自己的比较函数。该函数比较两个XML节点的“name”属性。最后,我们使用usort()函数按字母顺序对数组进行排序。最后,我们将数组转换回SimpleXML对象,并输出结果。
上一篇:按属性对数组进行排序段