2010-05-29 3 views
1

Хорошо, поэтому я только (почти) закончил свой первый небольшой скрипт php. В основном все это делает обработку форм. Он записывает все, что пользователь вводит в поля формы в текстовый файл, затем включаю этот текстовый файл в индекс маленькой страницы, которую я установил.Сортировка списка в PHP

Итак, в настоящее время он записывает в начало текстового файла (но не перезаписывает предыдущие данные). Но несколько пользователей хотят, чтобы этот список был отсортирован в алфавитном порядке. Поэтому я хочу сделать то, что они подают, попадая в список в алфавитном порядке.

Дело в том, что все, что я использую в текстовом файле, - divs. Список в основном «разделен» на 3 части. «Название», «Ссылка» и «Плакат». Все, что я сделал, позиционирует их с помощью css.

Итак, могу ли я отсортировать этот список (заголовки, в данном случае) в алфавитном порядке и по-прежнему иметь информацию о «ссылке» и «плакате», назначенную так, как они есть, но только с отсортированными названиями?

Он вообще не использует базы данных на моем сайте, поэтому в этом скрипте нет обработки баз данных (в основном потому, что я вообще не испытываю этого).

+3

пользователи этого пользователя? инвестировать в базу данных. – Kevin

+1

Да, это возможно, хотя вам понадобится какой-то разделитель в файле для разделения разных записей. Я также рекомендовал бы получить базовый опыт работы с базами данных. :) Если все вставлено в набор строк в таблице, вы можете сортировать его разными способами, не записывая много кода. –

+0

Так что я действительно должен инвестировать в базу данных, да? В чем разница между использованием только текстового документа и базы данных (кроме создания того, что я хочу с ней)? Я спрашиваю из-за замечания Кевина. Спасибо за ответы! – Andy

ответ

0

Если вы действительно не хотите использовать базу данных, даже базы данных один-файл (например, SQLite), вы можете сгруппировать в три поля, используя разделитель, например, _ и сортировать этот список одного поля

+0

Но, действительно, используя БД, вы сделаете свою жизнь МНОГО МНОГО БОЛЬШЕ – nico

3

Я также предложил бы хранить данные в файле либо XML, либо JSON. PHP может сортировать записи легко и сортировки будут сохранены в файле, когда данные считываются обратно.

Например

file_put_contents("/tmp/datafile",json_encode($recordset)); 

и при чтении файла в

$recordset = json_decode(file_get_contents("/tmp/datafile")); 

но серьезно, если у вас есть клиенты и заряжаете их для вашего опыта и времени, используйте базу данных, повторно много там (некоторые уже упоминалось)

  • MySQL
  • SQLite
  • PostgreSQL
  • Oracle
  • MSSQL
0

Если это небольшой проект для некоторых друзей или что-то, и файл не должен иметь больше, чем, может быть, несколько сотен строк, функции, которые вы ищете, - это «файл» и «usort».

Если вы убедитесь, что каждая строка находится в собственной строке, вы можете загрузить строки в массив с «файлом». Вы можете отсортировать массив, используя функцию для сравнения элементов с функцией «usort».

Смежные вопросы