Sortowanie i grupowanie danych SimpleXML
Sortuję i grupuję dane publikacji z pliku XML. Metody, których obecnie używam, działają dobrzeprzez większą część, chociaż czuję, że istnieje skuteczniejszy sposób na robienie tego, co próbuję osiągnąć.
Oto przykładowy wygląd węzłów docelowych:
<comic>
<id>117</id>
<mainsection>
<series>
<displayname>My Amazing Adventure</displayname>
<sortname>My Amazing Adventure</sortname>
</series>
</mainsection>
<issuenr>2</issuenr>
<seriefirstletter>
<displayname>M</displayname>
<sortname>M</sortname>
</seriefirstletter>
</comic>
Oto aktualne kroki, które podejmuję.
Ładowanie pliku XML za pomocą SimpleXMLOkreślenie węzła docelowego i użycie iterator_to_array do przekonwertowania go na tablicęUżywając funkcji usort, która porównuje (strcmp) atrybut seriesname, aby posortować wszystkie serie alfabetycznie.Używam ciągu kwerendy dla każdej strony, aby określić każdą literę alfabetu i używając instrukcji IF, która porównuje literę ciągu zapytania z wartością z listu seryjnego. Zwracane są tylko odpowiednie węzły.Następnie zaczynam moje oświadczenie foreach. Echoing danych, które chcę, do elementów LI.Na koniec używam jQuery do sprawdzenia identyfikatorów każdego elementu LI i wizualnego grupowania ich. Stworzyłem zmienną PHP, która używa nazwy serii, z usuniętymi spacjami dla identyfikatorów. Wstawia nagłówek H4 o odpowiedniej nazwie serii, nad grupą i wstawia oddzielenie DIV poniżej grupy.Podczas sortowania alfabetycznego działa prawidłowo. Chcę również, aby problemy z tej samej serii były sortowane numerycznie.Obecnie nie działa. Teraz numeryczny porządek sortowania wygląda mniej więcej tak: 1, 10, 12, 2, 3.
Chciałbym wyprostować numeryczny problem sortowania. Mam również wrażenie, że grupowanie, które obecnie wykonuję w jQuery, może być wykonane w PHP, podczas gdy przechodzę przez pętlę. Wszelkie porady dotyczące lepszego / bardziej wydajnego sposobu obsługi tych danych byłyby bardzo mile widziane.