ตรวจสอบหมายเลขบัตรประชาชน

วิธีการตรวจสอบความถูกต้องของเลขบัตรประจำตัวประชาชน
มีขั้นตอนดังต่อไปนี้ครับ
เลขบัตร 1201541462234

  1. เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน (หลักสุดท้ายไม่ต้องเอามา เก็บไว้เช็คคำตอบตอนสุดท้าย ในที่นี้คำตอบคือ 4)
    1 2 0 1 5 4 1 4 6 2 2 3
  2. เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
    รหัสบัตร 1 2 0 1 5 4 1 4 6 2 2 3
    ตัวคูณ  13 12 11 10 9 8 7 6 5 4 3 2
    ผลคูณ 13 24 0 10 45 32 7 24 30 8 6 6
  3. เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด จะได้ 13+24+0+10+45+32+7+24+30+8+6+6=205
  4. เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ) จะได้ 205 mod 11 = 7
  5. เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4 จะได้ 11-7 = 4 (เราจะได้ 4 เป็นเลขในหลัก Check Digit)
  6. ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit (เช่น 11 ให้เอา 1 มา, 10 ให้เอา 0 มา เป็นต้น)
  7. ถ้าเลข Check Digit เท่ากับ เลขในหลักสุดท้าย ก็คือ เลขทั้งหมดนี้สามารถเป็นเลขบัตรประชาชนได้ แต่ไม่ได้หมายความว่า มันจะถูกนำมาใช้อยู่จริง
public function checkPID($pid) {
     if(strlen($pid) != 13) return false;
     for($i=0, $sum=0; $i<12;$i++)
          $sum += (int)($pid{$i})*(13-$i);
     if((11-($sum%11))%10 == (int)($pid{12}))
          return true;
     return false;
}

Related posts:

This entry was posted in knowledge. Bookmark the permalink.