Упорядочить записи SimpleXML в алфавитном порядке - PullRequest
0 голосов
/ 21 февраля 2012

вот мой первый вопрос по stackoverflow. Я обычно пытаюсь найти ответ самостоятельно, но на этот раз я застрял.

сначала немного о себе: у меня нет глубоких знаний о php, однако я ежедневно работаю с css и html. у меня есть хорошее понимание того, как работают циклы, если для операторов while и подобных (немного работал с python и pascal за эти годы). Сейчас я пытаюсь расширить свои знания в области веб-дизайна с помощью php.

в качестве упражнения для себя, я сейчас пытаюсь создать свою собственную библиотеку фильмов. я сделал это уже в html (привет бесполезная работа) и теперь я конвертирую его в php / simplexml. Глядя на php.net и другие онлайн-ресурсы, мне удалось создать следующую структуру:

XML

<film>
    <title>Great Movie</title>
    <link>http://imdb.com/#</link>  
    <poster>img-name</poster>
    <year>2012</year>
</film>

повторяется для каждого фильма, который у меня есть, и, конечно, все внутри корневого тега <film></film>

php вместо этого выглядит следующим образом:

<ul>
<?php
$xml = new SimpleXMLElement ('database.xml',NULL,true);
foreach($xml->film as $movie)
{

echo "<li>\n";
echo "<div class=\"film_container\">\n";
echo "<div class=\"poster\">\n";
echo "<a href=\"".$movie->link."\"><img src=\"img/".$movie->poster.".jpg\" /></a>\n";
echo "</div>";
echo "<div class=\"info\">\n";
echo "<h2>".$movie->title."</h2>\n";
echo "<p>".$movie->year."</p>\n";
echo "</div>\n";
echo "</div>\n";
echo "</li>\n";

}
?>
</ul>

опять же, очень просто. это просто позволило мне разметить всю необходимую информацию, а затем оформить их с помощью CSS.

Теперь начинается сложная часть. поскольку в моей html-библиотеке уже было более 200 фильмов, все они были перечислены вручную в алфавитном порядке (да, я знаю ..), и было бы довольно бессмысленно начинать добавлять новые записи без порядка, но для дальнейшего использования я хотел чтобы узнать, есть ли способ, просто добавив новую запись в конце xml, она автоматически помещается в нужное место при прохождении цикла.

Я довольно широко просматривал Интернет, и да, я нашел несколько решений для сортировки записей в алфавитном порядке, но они сработали, когда вы распечатали результат сортировки (например, я сортирую все фильмы по имени, затем могу распечатать весь список фильмов, отсортированных в алфавитном порядке с помощью функции var_dump), но я абсолютно не знаю, что добавить в оператор foreach после того, как я отсортировал их, чтобы снова просмотреть xml и прочитать каждый из них по отдельности.

заранее всем спасибо за то, что просто прочитали мою стену текста. Извините, если я написал слишком много, но я не знал, как еще объяснить себя. Я совершенно уверен, что ответом будет что-то в строке: «Это очень просто, вы просто пропустили эту часть в руководстве».

...