我有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
重定向客戶端