每人一个独特数字id,注册成功随机生成一个1位到11位数id,长整型,0-99999999999 。要使用合理高效的比对算法,避免跟所有现存id逐一比对。
该怎么写?大家有什么好的想法

解决方案 »

  1.   

    直接将用户的ID缓存成一个以数组形式存取的php文件,查看是否有重复用 isset(id['username'])就可以了,没重复就自动生成一个,插入数据库和缓存文本。
      

  2.   

    大概是这样<?
    $arr = array(...); // 必须是排序好的
    function searchID($s, $min, $max){
    global $arr;
    if($min == $max){
    if($s == $arr[$min]){
    return true;
    }else{
    return false;
    }
    }else{
    $middle = round(($max-$min)/2);
    if($s == $arr[$middle]){
    return true;
    }else if($s < $arr[$middle]){
    searchID($s, 0, $middle); 
    }else{
    searchID($s, $middle, $max);
    }
    }
    }
    echo searchID($s, 0, count($arr));
    ?>
      

  3.   

    是差不多,但利用php本身有的资源要比自己去动手重新写一次要节省时间, 效率上自带的功能也稍胜一筹