Scalr\Service\Aws\S3\V20060301\S3Api::getFilteredArray PHP Метод

getFilteredArray() защищенный статический Метод

Filter values with allowed keys.
protected static getFilteredArray ( array $allowedKeys, array $values, boolean $caseInsensitive = true ) : array
$allowedKeys array An list of allowed keys.
$values array An associative array of the values looks like array(key => val).
$caseInsensitive boolean optional Case Insencitive comparison
Результат array Returns filtered array.
    protected static function getFilteredArray(array $allowedKeys, array $values, $caseInsensitive = true)
    {
        $arr = array();
        if ($caseInsensitive) {
            $allowedKeys = array_combine(array_map('strtolower', $allowedKeys), $allowedKeys);
        } else {
            $allowedKeys = array_combine($allowedKeys, $allowedKeys);
        }
        $regexp = array();
        foreach ($allowedKeys as $k => $v) {
            if (substr($v, -1) == '-') {
                $regexp[] = '#^' . preg_quote($k, "#") . '.+$#i';
                unset($allowedKeys[$k]);
            }
        }
        foreach ($values as $k => $v) {
            if ($caseInsensitive === true) {
                $k = strtolower($k);
            }
            if (isset($allowedKeys[$k])) {
                $arr[$allowedKeys[$k]] = $v;
            } else {
                if (!empty($regexp)) {
                    foreach ($regexp as $reg) {
                        if (preg_match($reg, $k)) {
                            $arr[$k] = $v;
                            break 1;
                        }
                    }
                }
            }
        }
        return $arr;
    }