#php
#php
Вопрос:
У меня есть 20 переменных, каждая из которых содержит число от 1 до 10000.
Есть ли простой способ проверить, что все переменные содержат уникальное значение, и, если нет, отправить пользователя прочь.
например,
if($var1,$var2,$var3...etc are not unique)
{
location wherever.php
exit;
}
Интерфейс должен препятствовать тому, чтобы пользователь отправлял одно и то же значение дважды, однако мне нужно это проверить.
Спасибо 🙂
Ответ №1:
$data = array( /* your numbers */);
$unique = array_unique($data);
if ( count($data) != count($unique) ) {
// not unique
}
Вы также можете сравнить эти массивы вместо подсчета их элементов:
if ( $data != $unique ) {
// not unique
}
Ответ №2:
Поместите значения в массив.
Передайте массив в функцию php
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
Если массив, возвращаемый функцией, меньше, чем входные данные, значит, были найдены неуникальные ключи.
Ответ №3:
$arr = array($var1, $var2 ... );
$arr2 = array_unique($arr);
if(count($arr) != count($arr2)){
// send location;
}
Ответ №4:
я бы создал функцию, которая использует array_unique()
вот так:
function is_unique($array) {
if (count(array_unique($array)) < count($array)) return false;
return true;
}
затем вы должны использовать заголовки для перенаправления клиента с php:
if (!is_unique($array)) {
header("location: whatever");
}
обратите внимание, что заголовки должны отправляться перед любым HTML-кодом. Если вы не можете этого сделать, вам придется использовать javascripts window.location = url
для перенаправления клиента
Ответ №5:
Было бы очень просто, если бы переменная находилась в массиве.
$var[1] = 590;
$var[2] = 614;
и т.д. и т.п.
Затем вы можете сделать:
foreach ($var as $a_key => $a){
foreach($var as $b_key => $b){
if($a==$b amp;amp; $a_key != $b_key){
//Do whatever you want to do.
}
}
}
Этот метод позволит вам выполнять функцию для каждой совпадающей пары или в качестве ответа на каждую совпадающую пару.
Ответ №6:
Поместите каждую из переменных в массив $variables = array( $var1, $var2 , ... )
sort($variables)
$before = null;
foreach($var as $variables) {
if ($before = $var) { // $var is not unique
header("Location: whereever.php");
die();
}
$before = $var;
}
// if you reach this point, all variables were unique