假设您已经将所有<comic>元素作为迭代器。首先将其转换为数组,以便我们可以使用数组函数:
$comics = iterator_to_array($comics, 0);
然后你想根据某个值对这个数组进行排序,这里是<issuenr>孩子的值。这可以在usort回调函数的帮助下完成:
$success = usort($comics, function($a, $b) {
    return strnatcmp($a->issuenr, $b->issuenr);
});
回调函数只是选择您想要相互比较的具体值并将其传递给strnatcmp我上面评论的自然顺序比较。
以下代码示例显示如何列出与特定搜索字母、natsorted 和 distinct(无重复名称、分组)匹配的所有系列。
搜索和分组都是通过xpath查询完成的:
$searchval = 'T';
$file = 'compress.zlib://comiclist10-12.xml.gz';
$xml = simplexml_load_file($file);
$series = $xml->xpath(
    "/*/comiclist/comic[./seriefirstletter/displayname = '$searchval']
        /mainsection/series/sortname[
            not(. = ../../../following-sibling::comic/mainsection/series/sortname)
        ]"
);
natsort($series);
foreach($series as $serie)
{
    echo $serie, "\n";
}
这将输出排序列表:
Tale of the Batman: Gotham by Gaslight, A
Tales of Suspense: Captain America & Iron Man #1 Commemorative Edition
Tales to Astonish, Vol. 1
Teenage Mutant Ninja Turtles
Teenage Mutant Ninja Turtles Micro Series
Teenage Mutant Ninja Turtles Ongoing
Terminator / Robocop: Kill Human
Thanos
Thing, Vol. 1
Thor, Vol. 2
Thor, Vol. 3
Thor: Blood Oath
Thor: For Asgard
Thor: Man of War
Thor: Son of Asgard
Thor Annual
Thor Corps
Thundercats
Thundercats (DC Comics - Wildstorm)
Thundercats: Enemy's Pride
Tomb of Dracula, Vol. 4, The
Torch, The
Toxin
Transformers: Armada
Transformers: Generation One
Transformers: Infiltration
Truth: Red, White & Black
在下一步中,您要列出该系列中的所有漫画,这将是一个内部 foreach:
foreach ($series as $serie) {
    echo $serie, "\n";
    $string = xpath_string($serie);
    $comics = $serie->xpath("../../../../comic[./mainsection/series/sortname = $string]");
    foreach ($comics as $i => $comic) {
        printf(" %d. id: %s\n", $i+1, $comic->id);
    }
}
然后它将获取每个系列的漫画,输出:
Tale of the Batman: Gotham by Gaslight, A
 1. id: 8832
Tales of Suspense: Captain America & Iron Man #1 Commemorative Edition
 1. id: 3591
Tales to Astonish, Vol. 1
 1. id: 3589
Teenage Mutant Ninja Turtles
 1. id: 117
Teenage Mutant Ninja Turtles Micro Series
 1. id: 13789
Teenage Mutant Ninja Turtles Ongoing
 1. id: 13780
 2. id: 13782
 3. id: 13787
Terminator / Robocop: Kill Human
 1. id: 13775
Thanos
 1. id: 3597
Thing, Vol. 1
 1. id: 3746
Thor, Vol. 2
 1. id: 5873
Thor, Vol. 3
 1. id: 1035
 2. id: 1635
 3. id: 2318
 4. id: 2430
 5. id: 2463
 6. id: 3333
 7. id: 3616
 8. id: 11731
 9. id: 11733
Thor: Blood Oath
 1. id: 3635
 2. id: 3636
Thor: For Asgard
 1. id: 11545
 2. id: 11546
Thor: Man of War
 1. id: 3644
Thor: Son of Asgard
 1. id: 538
 2. id: 3645
Thor Annual
 1. id: 5868
Thor Corps
 1. id: 3640
Thundercats
 1. id: 209
Thundercats (DC Comics - Wildstorm)
 1. id: 3654
Thundercats: Enemy's Pride
 1. id: 3649
Tomb of Dracula, Vol. 4, The
 1. id: 3719
Torch, The
 1. id: 2328
 2. id: 2330
 3. id: 2461
Toxin
 1. id: 3720
Transformers: Armada
 1. id: 3737
Transformers: Generation One
 1. id: 557
Transformers: Infiltration
 1. id: 3729
 2. id: 3731
Truth: Red, White & Black
 1. id: 3750
 2. id: 3751
该xpath_string函数的代码可以在我的另一个答案中找到。