ความรู้

Code สุ่มหมายเลขบัตรประจำตัวประชาชนคนไทย 13 หลัก

พอดีกำลังจะเขียน Web Application อยู่ตัวนึง แล้วพอดีต้องใช้ หมายเลขบัตรประจำตัวประชาชนของคนไทย 13 หลัก เพื่อกรอกข้อมูลประชากรลงไปในระบบ จึงต้องทำการสุ่มหมายเลขบัตรประจำตัวประชาชนที่ถูกต้องลงไปเพื่อทดสอบระบบอยู่เรื่อยๆ ใส่ซ้ำก็ไม่ได้ เลยนั่งหาวิธีการคำนวณหมายเลขบัตรประชาชนอยู่ไปๆ มาๆ ก็เจอตัว wiki ก็เลยรู้วิธีคำนวณ เลยมานั่งเขียน Logic ตามที่เห็น ก็ได้ประมาณนี้ เขียนไว้กันลืมหน่ะครับ ใครมี File Library อยู่แล้ว ก็สามารถนำไปยัดไว้ได้เลยครับ ผมเขียนเป็น function ไว้ให้แล้ว

# สุ่มหมายเลขบัตรประชาชน
function randomCitizenID(){
	for($i=0;$i<12;$i++){
		$k = abs($i + (-13));
		$m = rand(0,9);
		$firstNumber .= $m; // ตัวเลขชุดแรก (12 หลัก)
		$numberCalc += ($k * $m);
	}
	$lastNumber = 11 - ($numberCalc % 11); // ตัวเลขหลักสุดท้าย
	return $firstNumber.$lastNumber;
}

echo randomCitizenID();

4 Comments

  1. ว้าว แบบนี้ขอเก็บครับ ขอบคุณมาก น่าจะมีประโยชน์ เดี๋ยวเอาไปพัฒนาต่อยอดครับ ได้ผลอย่างไรจะมาบอก

  2. ขอ

  3. ผมเคยเขียนนะ เขียนแบบ สุ่มตัวเลขที่ละตัว ตั้งเป็นตัวแปร เอามา + – x / กันทีละตัว สุดท้ายก็ echo ทุกตัวออกมา เขียนซะยาวยืด ฮ่าๆๆๆ อันนี้แจ่มกว่า

  4. ภาษาไพธอนรึป่าวคะ

Leave a Reply

Your email address will not be published.