1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 60
|
||||||
1 | ||||||
Чтение Из файла и поиск по строкам!18.05.2012, 22:17. Показов 3445. Ответов 5
Метки нет (Все метки)
Music2 A State Of Trance 2009 01 Armin van Buuren Imagine Music2 A State Of Trance 2009 02 Armin van Buuren with DJ Shah feat Chris Jones Going Wrong Music2 Movin Melodies 17 atb the summer Сейчас вообще ничего не выводит( Нужно чтобы происходил поиск по строкам, и происходил вывод тех строк файла, в которых содержатся элементы массива $arr, если допустим ни одного слова из массива в строке нет, то строка не должна выводиться вообще, по идее там должно выводиться в релевантном порядке, но пока я этого не прошу, благодарю за помощь)нужно подправить этот код, туплю что-то...(
0
|
18.05.2012, 22:17 | |
Ответы с готовыми решениями:
5
Запись и чтение данных из структурированного файла, поиск по строкам Чтение файла, как сделать прогон по всем строкам файла Чтение файла по строкам Чтение файла по строкам |
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
|
||||||
18.05.2012, 22:49 | 2 | |||||
1
|
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 60
|
||||||
19.05.2012, 00:30 [ТС] | 3 | |||||
return $b['relevance'] - $a['relevance'];
0
|
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
|
|
19.05.2012, 11:28 | 4 |
Кратко говоря, sort_by_relevance - это правило сравнения двух эелементов, а usort - это сортировка массива с использованием такого правила.
Если в деталях, то... При обычной сортировке (с помощью функции sort) массив сортируется по значениям элементов. То есть, в процессе происходит куча сравнений разных пар элементов. Это нормально работает, если ваши значения числа или строки. Но в нашем случае результаты поиска ($results) - это массив не простых элементов, а массив маленьких хэшей с двумя элементами (line и relevance). И простая функция сортировки не сможет сравнить хэши. Для решения таких "нетривиальных" случаев и придумана функция usort, позволяющая указать, каким именно образом должны сравниваться два элемента ($a и $b). Способ сравнения пары элементов - это и есть функция-компаратор sort_by_relevance. А в usort передается только имя этого компаратора. Функция-компаратор, получив пару элементов ($a и $b в нашем случае), должна вернуть: - либо 0, если элементы равны, - либо значение >0, если $a > $b, - либо значение <0, если $a < $b. Зная эти правила, можно отсортировать массивы даже очень сложных объектов. В нашем случае мы должны были отсортировать набор маленьких хэшей по ключу relevance, но в убывающем порядке, чтобы результаты поиска с большей релевантностью оказались в начале.
0
|
1 / 1 / 0
Регистрация: 28.11.2010
Сообщений: 60
|
||||||
19.05.2012, 15:40 [ТС] | 5 | |||||
Посмотрел в интернете, там немного по-другому но тоже работает)Получается $а и $b
0
|
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
|
|
19.05.2012, 18:39 | 6 |
Это практически то же самое, что и вычитание одного из другого.
Гуглите "алгоритмы сортировки".
0
|
19.05.2012, 18:39 | |
19.05.2012, 18:39 | |
Помогаю со студенческими работами здесь
6
Чтение по строкам из текстового файла Чтение переменных из файла по строкам Чтение по строкам из файла txt Чтение файла по строкам в C++ Builder Чтение файла после создания по строкам Чтение строк из текстового файла, присваивание значений строкам класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |