首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP验证检查数字11 (mod 11)

使用PHP验证检查数字11 (mod 11)
EN

Stack Overflow用户
提问于 2017-02-16 11:35:19
回答 1查看 1.9K关注 0票数 1

如何使用检查数字11 (mod 11)使用PHP验证NHS号码。

在互联网上进行了长时间的搜索之后,我试图找到一个函数来验证校验数字11 (mod 11)的数字,但我找不到,所以我自己开发了一个,并在这里共享它。我希望有人能帮上忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 11:35:19

附有评论的守则:

代码语言:javascript
复制
###### Check Digit 11 Modulus
function mod11($nhs_no){
    //Get Last Number
    $checkDigit = (int)substr($nhs_no, -1);
    //Get Remaining Numbers
    $numbers = substr($nhs_no, 0, -1);  
    // Sort Numbers Into an Array
    $numbers_array = str_split($numbers);
    //Define the base for the weights
    $base=2;
    // Multiply the weights to the numbers
    $numbers_array_reversed =  array_reverse($numbers_array);
    foreach($numbers_array_reversed as $number){$multiplier[$number.'x'.$base]=(float)$number * $base;$base++;}
    //Get the total sum
    $sum =(float) array_sum($multiplier);
    $modulus = 11;
    // Divide the sum by check digit 11
    $divider = (float)($sum / $modulus);
    // Get the remainder
    $remainder = (int)(($divider - (int)$divider)*$modulus);
    // Check if the remainder is matching with the last check digit
    $results = (int) ($modulus-$remainder);
    // Return true or false 
    return ($results == $checkDigit ? true : false);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42272819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档