Есть такой запрос: $result = mysql_query("SELECT id FROM `users`",$db); ... while($myrow = mysql_fetch_array($result)); Как лучше сделать чтобы все выбранные $myrow["id"] записать в массив, а потом, отсеять дубликаты и каждый раз сверять есть ли конкретный $myrow["id"] в массиве или нет. Всё это дело происходит в цикле вывода из БД.
если строки помимо айдишника имеют вообще идентичные значения полей то можно в процессе итерации делать просто так: Код (PHP): $data=[]; while($row = mysql_fetch_array($result)){ $data[$row['id']] = $row; } два замечания по увиденному коду: 1. точка с запятой в строке while отсекает возможное тело цикла 2. mysql уже удален и нужно переходить на mysqli или PDO
думаю, можно поступить еще проще, добавить одно слово к запросу, и не нужно будет собирать массив в цикле (
я сильно извиняюсь, но как в таблице пользователей может быть повтор айдишников? сама суть УНИКАЛЬНОГО ИДЕНТИФИКАТОРА в том что он УНИКАЛЬНО ИДЕНТИФИЦИРУЕТ запись. что-то тут говнокодом каким-то попахивает.
Сорри, не id, userid! Сделал так: $data[$myrow["userid"]] = $myrow["userid"]; В цикле в print_r($data) вижу: Array ( [1] => 1 ) Array ( [1] => 1 [2] => 2 ) Array ( [1] => 1 [2] => 2 ) Array ( [1] => 1 [2] => 2 ) Делаю поиск: Код (Text): if(in_array($myrow["userid"], $data[$myrow["userid"]])) { echo "found"; } else { echo "not found"; } И всегда выводит not found Как так?
А в случае обнаружения дубликата, по какому правилу принимать решение, какую запись оставить, а какую удалить?