我有20个变量,各持1和10000检查PHP变量保存唯一值
之间的数字有没有检查所有的变量拥有唯一值的简单方法,如果没有发送用户离开了。
例如,
if($var1,$var2,$var3...etc are not unique)
{
location wherever.php
exit;
}
前端应防止用户提交相同值的两倍,但是我需要检查它。
谢谢:)
我有20个变量,各持1和10000检查PHP变量保存唯一值
之间的数字有没有检查所有的变量拥有唯一值的简单方法,如果没有发送用户离开了。
例如,
if($var1,$var2,$var3...etc are not unique)
{
location wherever.php
exit;
}
前端应防止用户提交相同值的两倍,但是我需要检查它。
谢谢:)
将值放入数组中。
阵列传递给PHP函数
array array_unique (array $array [, int $sort_flags = SORT_STRING ])
如果由该函数返回的数组越小则输入那么它发现的非独特密钥。
这将是非常容易的,如果在数组中的变量。
$var[1] = 590;
$var[2] = 614;
等等等等
然后可以这样做:
foreach ($var as $a_key => $a){
foreach($var as $b_key => $b){
if($a==$b && $a_key != $b_key){
//Do whatever you want to do.
}
}
}
这种方法将允许您在每个匹配对执行功能,或者作为每个匹配对的响应。
将每个变量到一个数组$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
$data = array(/* your numbers */);
$unique = array_unique($data);
if (count($data) != count($unique)) {
// not unique
}
您也可以比较数组来代替计算它们的元素:
if ($data != $unique) {
// not unique
}
$arr = array($var1, $var2 ...);
$arr2 = array_unique($arr);
if(count($arr) != count($arr2)){
// send location;
}
我会做一个函数使用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
重定向客户端