我正在尝试按字母顺序对节点列表进行排序,然后在 SimpleXML 中回显它们。我正在使用与此处引用的类似的usort函数:
对 SimpleXML 和 PHP 中的 Xpath 返回的结果进行排序
这是我的代码:
$xQuery = $xml->comiclist->comic;
function cmp ($a, $b) {
return strcmp(
$a->mainsection->series->sortname,
$b->mainsection->series->sortname
);
}
usort($xQuery, "cmp");
foreach ($xQuery as $comic) :
问题是它似乎只是部分工作。大多数项目都正确组合在一起,但有些项目完全不合适。从函数中可以看出,每个 $comic 节点都按其子节点“mainsection->series->sortname”进行排序。
这是它生成的一些订单的示例:
<sortname>New Avengers: Illuminati, Vol. 2</sortname>
<sortname>New Avengers: Illuminati, Vol. 2</sortname>
<sortname>Nova</sortname>
<sortname>New X-Men</sortname>
<sortname>Nation X</sortname>
<sortname>Namor, The Sub-Mariner Annual</sortname>
如您所见,它们不是按字母顺序排列的。我错过了什么吗?任何帮助表示赞赏。