จากบทความก่อนหน้านี้ (ฟังชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ) จะเห็นว่า ผมใช้เลขดัชนีของ Array เป็นตัวเลือกข้อมูลที่จะส่งออกจาก function
ทีนี้มันมีปัญหาอยู่ว่า เลขดัชนีของ Array จะเริ่มต้นจาก 0 ขึ้นไปเรื่อยๆ แล้วถ้า เรามีตัวเลขติดลบที่ต้องการจะแปลง เราจะใช้ function
ในลักษณะนี้ได้หรือไม่ เช่นในฐานข้อมูลเราเก็บสถานะใบสั่งซื้อ โดยเราสมมติตัวเลขว่า -2=ใบสั่งซื้อไม่สมบูรณ์ , -1=ยกเลิกใบสั่งซื้อ ,
0=รอการยืนยันจากผู้ซื้อ , 1=กำลังส่งของ , 2=สินค้าถึงมือผู้รับแล้ว เป็นต้น
เมื่อตัวเลขเริ่มจาก -2 จะทำไงดี
งานนี้เราจะใช้ Associative Array
Associative Array ก็คือ Array ที่อ้างอิงถึงค่าภายในด้วยชื่อ เช่น $myArray[‘animal’] ยังๆ ไม่จบแค่นี้
Associative Array ของ PHP นั้นอนุญาติให้ใช้ตัวเลขได้ด้วยเช่น $myArray[-1] งี้เป็นต้น ดูไปก็เหมือนกับ Array ปกติ
วิธีการประกาศใช้ Associative Array จะเป็นดังนี้
$strStatus = array(-2=> ’ใบสั่งซื้อไม่สมบูรณ์’ , -1=>’ยกเลิกใบสั่งซื้อ’, 0=>’รอการยืนยันจากผู้ซื้อ’ , 1=>’กำลังส่งของ’, 2=>’สินค้าถึงมือผู้รับแล้ว’ ) ; |
ได้เวลาเขียนฟังก์ชั่นแล้ว
<?php function func_conv_status( $input ){ $strStatus = array(-2=>’ใบสั่งซื้อไม่สมบูรณ์’ , -1=>’ยกเลิกใบสั่งซื้อ’,0=>’รอการยืนยันจากผู้ซื้อ’ , 1=>’กำลังส่งของ’,2=>’สินค้าถึงมือผู้รับแล้ว’ ) ; return $strStatus[ $input ] ; } ?> |
เวลาเรียกใช้
<?php echo func_conv_status( -1 ); // ยกเลิกใบสั่งซื้อ ?> |
เห็นมั้ยว่าเราทำได้
Leave a Reply