|
|
|
| Подскажите пожалуйста!
Есть массив:
$a = array($_POST['text1'], $_POST['text2'], $_POST['text3'])
Как проверить массив, чтобы значения, которые пользователь вводит в форму не повторились, чтобы в трех полях не было одинаковых значений.
Заранее благодарен. | |
|
|
|
|
|
|
|
для: fsn
(03.02.2008 в 14:31)
| | if($a[0] == $a[1] || $a[0] == $a[2] || $a[1] == $a[2]) die(".."); | |
|
|
|
|
|
|
|
для: Trianon
(03.02.2008 в 16:53)
| | Это я для примера привел всего 3 поля, а на самом деле их гораздо больше и что их так все перебирать? | |
|
|
|
|
|
|
|
для: fsn
(03.02.2008 в 14:31)
| | Можно извратится как то так:
<?
// Данные, которые получили с формы
$a = array($_POST['text1'], $_POST['text2'], $_POST['text3'])
$b = array_unique($a);
if (count($a) == count($b)) {
// всё гуд - нету одинаковых
...
} else {
// ноу гуд - есть одинаковых
...
}
?>
|
| |
|
|
|
|
|
|
|
для: dobryy
(03.02.2008 в 18:02)
| | Я пробовал на array_unique, но я забыл сказать, что пустые поля допускаются. | |
|
|
|
|
|
|
|
для: fsn
(03.02.2008 в 18:54)
| | Вот... может подойдёт, более универсальный вариант, для любого количества элементов в массиве и с учётом того, что пустые значения могут повторятся.
Но нужно хорошенько потестировать.
<?
// Данные, которые получили с формы
$a = array("a","b","c");
foreach ($a as $v) {
// берем первый элемент массива, исключая его из него.
$elem = array_shift($a);
// проверяем или есть ещё такие значения в массиве и не пустое ли оно
if (in_array($elem,$a) && $elem != ""){
//есть совпадения
} else {
//нет совпадения
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Dobryy
(03.02.2008 в 19:18)
| | Dobryy ! Большое спасибо.
Вчера долго тестировал, работает. | |
|
|
|
|
|
|
|
для: fsn
(03.02.2008 в 18:54)
| | Ещё один:
<?
// Данные, которые получили с формы
$a = array(" "," ","c");
foreach ($a as $k => $v){
if (trim($v) == "") {
unset($a[$k]);
}
}
$b = array_unique($a);
if (count($a) == count($b)) {
// всё гуд - нету одинаковых
echo "Gooood";
} else {
// ноу гуд - есть одинаковых
echo "No goooooood";
}
?>
|
| |
|
|
|
|
|
|
|
для: Dobryy
(03.02.2008 в 19:28)
| | Не парьтесь!
Есть такая функция array_count_values
$count_array=array_count_values($array);
foreach($count_array as $key=>$value)
if ($value>1)
echo $key; //поле, которое повторяется больше одного раза
|
| |
|
|
|