CodeIgniter แยกที่อยู่คอลัมน์เดียว ให้ออกมาเป็นส่วนๆในรูปแบบอาร์เรย์ เลขที่ หมู่ที่ ถนน ตำบล อำเภอ จังหวัด

โดย CyberMAN

ตัวอย่างการสร้างฟังก์ชั่นสำหรับแยกที่อยู่คอลัมน์เดียว ให้ออกมาเป็นส่วนๆในรูปแบบอาร์เรย์


public function setFormAddress($address)
    {
        $param = array(
            'address_num' => '',
            'address_group' => '',
            'address_road' => '',
            'address_sub_district' => '',
            'address_district' => '',
            'address_province' => ''
           
        );
       
        $right_address = '';
       
        if(trim($address) != ''){
           
            $exp = explode('เลขที่ ' , $address);

            if( isset($exp[1]) && trim($exp[1]) != '' ){
                $right_address = $exp[1];
                $arr = explode(' ' , $exp[1]);
                if( isset($arr[0]) && trim($arr[0]) != '' ){
                    $param['address_num'] = $arr[0];
                }
            }
           
            if($right_address != ''){
                $exp = explode('หมู่ ' , $right_address);
               
                if( isset($exp[1]) && trim($exp[1]) != '' ){
                    $right_address = $exp[1];
                    $arr = explode(' ' , $exp[1]);
                    if( isset($arr[0]) && trim($arr[0]) != '' ){
                        $param['address_group'] = $arr[0];
                    }
                }
            }
           
            $check_bangkok = 0;
           
            if($right_address != ''){
                $exp = explode('ถ.' , $right_address);
               
                if( isset($exp[1]) && trim($exp[1]) != '' ){
                    $right_address = trim($exp[1]);
                    $arr = explode('ต.' , $right_address);
                    if( !isset($arr[1]) ){
                        $arr = explode('แขวง' , $right_address);
                        if(isset($arr[1])){
                            $check_bangkok = 1;
                        }
                    }
                   
                    if( isset($arr[0]) && trim($arr[0]) != '' ){
                        $param['address_road'] = trim($arr[0]);
                    }
                }
            }
           
            if($right_address != ''){
                $exp = explode('ต.' , $right_address);
                if( !isset($exp[1]) ){
                    $exp = explode('แขวง' , $right_address);
                }
               
                if( isset($exp[1]) && trim($exp[1]) != '' ){
                    $right_address = trim($exp[1]);
                    $arr = explode('อ.' , $right_address);
                    if( !isset($arr[1]) ){
                        $arr = explode('เขต' , $right_address);
                        if(isset($arr[1])){
                            $check_bangkok = 1;
                        }
                    }
                   
                    if( isset($arr[0]) && trim($arr[0]) != '' ){
                        $param['address_sub_district'] = trim($arr[0]);
                    }
                }
            }
           
            if($right_address != ''){
                $exp = explode('อ.' , $right_address);
                if( !isset($exp[1]) ){
                    $exp = explode('เขต' , $right_address);
                }
               
                if( isset($exp[1]) && trim($exp[1]) != '' ){
                    $right_address = trim($exp[1]);
                    $arr = explode('จ.' , $right_address);
                    if( !isset($arr[1]) ){
                        $arr = explode('กรุงเทพ' , $right_address);
                        if(isset($arr[1])){
                            $check_bangkok = 1;
                        }
                    }
                    if( !isset($arr[1]) ){
                        $arr = explode('กทม' , $right_address);
                        if(isset($arr[1])){
                            $check_bangkok = 1;
                        }
                    }
                   
                    if( isset($arr[0]) && trim($arr[0]) != '' ){
                        $param['address_district'] = trim($arr[0]);
                    }
                }
            }
           
            if($right_address != ''){
                $exp = explode('จ.' , $right_address);
                if( isset($exp[1]) ){
                    $param['address_province'] = $exp[1];
                }else{
                    if($check_bangkok == 1){
                        $param['address_province'] = 'กรุงเทพมหานคร';
                    }
                }
            }
        }
       
        return $param;
    }   





สำหรับวิธีเรียกใช้จากฟังก์ชั่นอื่นๆใน Controller เดียวกัน

 

$addrArr = $this->setFormAddress($address);

 

ตัวแปรอาร์เรย์ $addrArr จะได้ค่าที่แยกข้อมูลออกเป็นส่วนๆไว้ใช้งานต่อไป


สำหรับการนำไปประยุกต์ใช้งาน จะต้องปรับแต่งเพิ่มเติม กรณีที่อยู่มีข้อมูลมากกว่านี้

เช่น มีอาคาร ชั้นที่ ห้องที่ หรือข้อมูลอื่นๆที่มากกว่านี้





PHP CI MANIA - PHP Code Generator 

โปรแกรมช่วยสร้างโค้ด "ลดเวลาการเขียนโปรแกรม"
ราคาสุดคุ้ม  
http://www.phpcodemania.com