จากบทความก่อนหน้านี้ (ฟังชั่นแปลงตัวเลขเดือน เป็นตัวหนังสือ) จะเห็นว่า ผมใช้เลขดัชนีของ 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 ); // ยกเลิกใบสั่งซื้อ
 
?>

เห็นมั้ยว่าเราทำได้