quocvuongdn icon

#php: Get data from array, by alter name, set default val

quocvuongdn | PRO | 03/16/15 01:19:56 PM UTC | 0 ⭐ | 449 👁️ | Never ⏰ | []
PHP |

1.24 KB

|

None

|

0 👍

/

0 👎

function get_array_data($arr = array() , $keyName = '', $type = 'string', $defaultVal = null) {
        if (empty($arr)) {
            return $defaultVal;
        } 
        else {
            if (is_array($keyName)) {
                //Get by main name or alternative name.
                $value = array_key_exists($keyName[0], $arr) ? $arr[$keyName[0]] : (array_key_exists($keyName[1], $arr) ? $arr[$keyName[1]] : $defaultVal);
            } 
            else {
                $value = array_key_exists($keyName, $arr) ? $arr[$keyName] : $defaultVal;
            }
            if (!is_null($value)) {
                
                //Check boolean, string, numeric, array
                if (in_array($type, array(
                    'bool',
                    'boolean'
                ))) {
                    $trueVals = array(
                        '1',
                        1,
                        'yes',
                        'y',
                        'on',
                        'true',
                        true
                    );
                    if (in_array($value, $trueVals)) {
                        $value = 1;
                    }
                    $value = 0;
                } 
                elseif ($type == 'string') {
                    $value = (string)$value;
                } 
                elseif ($type == 'int') {
                    $value = (int)$value;
                } 
                elseif ($type == 'float') {
                    $value = (float)$value;
                } 
                elseif ($type == 'double') {
                    $value = (double)$value;
                } 
                elseif ($type == 'array') {
                    if (!is_array($value)) {
                        $value = false;
                    }
                }
            }
            return $value;
        }
    }

Comments