วิธีการหาตัวเลขแบบไม่ซ้ำ ใน array
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php $num=3; $arr = array("1","2","3","4","5","6","7","8"); $count_arr=count($arr); $arrName= array(); $idx=0; while($idx<$num) { $id_rand = rand(0,$count_arr-1); if (!in_array($arr[$id_rand],$arrName)) { $arrName[$idx]=$arr[$id_rand]; $idx++; } } print_r($arrName); ?> |
โดยที่
$num คือ จำนวนตัวเลขที่ต้องการ
$arr คือ array ที่เก็บข้อมูลตัวเลข
จริง ๆ แล้วเอาไปประยุกต์ใช้กับตัวอักษรก็ได้นะ
![]()
ตรวจสอบ IP Address จริง
ในบางครั้งเราต้องการตรวจสอบคนที่เข้ามาใช้เวปเรา และโดยส่วนมาแล้วจะตรวจสอบโดย
check IP Address ซึ่งถ้าเราใช้
1 2 3 4 | <?php $ip=getenv(REMOTE_ADDR); print "IP Address is $ip"; ?> |
เราก็จะได้ IP Address มา แต่ก็ถ้าเครื่องนั้น ๆ ใช้ Proxy Server เราจะได้ IP Address ของ
Proxy มาแทน ซึ่งเราควรแก้ไข code ที่ใช้ มาเป็น
1 2 3 4 5 6 7 | if (getenv(HTTP_CLIENT_IP)) { $ip = getenv(HTTP_CLIENT_IP); } elseif (getenv(HTTP_X_FORWARDED_FOR)) { $ip = getenv(HTTP_X_FORWARDED_FOR); } else { $ip = getenv(REMOTE_ADDR); } |
จะทำให้เราได้ IP Address ของเครื่องนั้น ๆ จริง ๆ
ข้อแตกต่าง ระหว่าง “ กับ `
หลายคน คงเคยใช้ ” กับ ` แต่อาจจะยังไม่ทราบ ถึงข้อแตกต่างระหว่างสองตัวนี้
สมมุติว่า เรา เขียน code ตามข้างล่างนี้
1 2 3 4 5 | <?php $a='test'; echo '$a'; // ผลลัพธ์คือ $a echo "$a"; // ผลลัพธ์คือ test ?> |
ซึ่งจะแสดงให้เห็นว่า เครื่องหมาย ` จะให้ผลลัพธ์ออกมาเลย
ส่วนเครื่องหมาย ” จะนำค่าไปประมวลผลก่อน จึงจะแสดงผล
ดังนั้น (อันนี้คือข้อแนะนำนะ)
ถ้าเราต้องการแค่แสดงผล
แนะนำให้ใช้เครื่องหมาย ` นะครับ จะทำให้ code เราประมวลเร็วขึ้น
ขอให้มีความสุขในการเขียน code นะครับ
จริง ๆ แล้วผมก็ไม่รู้มาก่อนหรอกนะ
ต้องขอขอบคุณน้อง ATT@MKT ด้วยนะครับ
เพิ่มความเร็วการทำงานของ loop
โดยส่วนมากแล้ว เวลาเขียน php มักจากหนีไม่พ้นจากการเขียน loop ซึ่งถ้าเขียน
1 2 3 | for ($a=0;$a=count($array_name);$a++) { do some thing... } |
จะทำให้การทำงานของ loop นานขึ้น
แต่ถ้าเปลี่ยนเป็น
1 2 3 4 | $count=count($array_name); for ($a=0;$a=$count;$a++) { do some thing... } |
จะช่วยลดการทำงานของ loop ให้ทำงานเร็วขึ้น

