Ответы:
Если БД не большая, то буквально перебором. Если большая база, то думаю надо искать функции специальные. Уверен подобное есть в запросах sql
БД не большая! если можно пример скрипта.
Я надеюсь это нужно только для личного пользования? Просто если многопользовательский скрипт, то нагрузка будет выше обычной на сервер.
Я могу алгоритм написать.
Собственно считываешь все в массив.
Первый элемент сравниваешь с последующими до конца массива. Потом переходишь ко втором элементу, сравниваешь его с последующими.
Собственно для этого два цикла нужно.
Первый передвигает сравниваемую ячейку, второй цикл перебирает элементы и сравнивает сравниваемую ячейку с последующими.
Я бы написал, но не хочу вдавать в mysql, долго это.
давай просто алгоритм а к Mysql я уже сам!
Попробуемс.
Собственно скажем массив будет у нас называться arr
col - количество элементов массива. Тоже с скл выдерешь
for ($i = 1; $i <= $col ; $i++) {
for ($k=0; $k<count($iskl);$k++ ) { if ($i==$k) continue} //в цикле перебираем массив с исключаемыми элементами и если условие выполнено, то он пропускает дальнейший код и запускает следущий цикл цикла for (который самый первый цикл.) В итоге он не выполняет запись данных о повторе.
for ($j = $i+1; $j <= $col ; $j++) {
if (arr[i]==arr[j])
{$pov[i]++; // тут заносим, сколько раз встречалось совпадение
$iskl[]=$j //массив, куда заносим номера элементов, которые в будущем надо исключить из перебора, т.к. они являются повторяющимеся
}}}
{ if ($i==$k) continue;}
забыл точку с запятой поставить
И еще ошибки могут быть из за того, что изначально не заданы некотоыре переменные, такие как $iskl. Просто изначально присвой им левые данные.
17 лет назад