Автор Тема: Проверка на отсутствие одинаковых значений.  (Прочитано 3240 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Skyer

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 88
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть, скажем, 100 переменных($a, $b, $c...$z). Все значения вводятся пользователем через форму. Как сделать так, чтобы если значения двух или более переменных окажутся одинаковыми, выводилось сообщение "Так нельзя"?
Чем меньше букв, тем ёмче слово.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка на отсутствие одинаковых значений.
« Ответ #1 : 06 Апреля 2004, 02:03:37 »
Skyer
если эти 100 переменных и есть вся форма (я имею ввиду что в форме нет других полей, на которые не распространяется это ограничение) то  например
if (array_unique($_POST) != $_POST)  {
  echo "есть дубликаты";
}

если, кроме этих 100 переменных есть еще и другие поля, то их надо в массив объединить
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Skyer

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 88
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка на отсутствие одинаковых значений.
« Ответ #2 : 06 Апреля 2004, 02:05:33 »
Да, другие поля есть.

Цитировать
то их надо в массив объединить

То есть, тот код, что ты написал, только вместо "$_POST" имя массива?
Чем меньше букв, тем ёмче слово.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка на отсутствие одинаковых значений.
« Ответ #3 : 06 Апреля 2004, 02:07:33 »
Цитировать
Skyer:
То есть, тот код, что ты написал, только вместо "$_POST" имя массива?

да. Ты вообще понял, что код делает ?
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Skyer

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 88
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка на отсутствие одинаковых значений.
« Ответ #4 : 06 Апреля 2004, 02:11:59 »
Макс
Я так понимаю, что array_unique проверяет, все ли значения элементов массива разные, и если это так, выводит TRUE, иначе - FALSE.
Спасибо! This shit works!:)
Чем меньше букв, тем ёмче слово.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка на отсутствие одинаковых значений.
« Ответ #5 : 06 Апреля 2004, 02:21:26 »
Skyer
нет.
[p]array_unique[/p] возвращает переданный ей массив без дубликатов.
Например

$a 
= array(123451);
$a array_unique($a);
print_r($a);

выдаст Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

если в массиве все значения были уникальны, то функция вернет массив, равный переданому. Что мы и проверяем в условии.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Skyer

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 88
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка на отсутствие одинаковых значений.
« Ответ #6 : 06 Апреля 2004, 02:24:53 »
Макс
Теперь стало понятно. Спасибо!
Чем меньше букв, тем ёмче слово.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28