            foreach ($val as $k => $v) {
                unset($process[$key][$k]);
                $stripTags = \in_array($k, $stripTagsWhiteList) ? false : $stripTagsConf;
                $allowedHtmlTags = \array_key_exists($k, $allowanceList) ? $allowanceList[$k][self::ALLOWED_HTML_TAGS_KEY] : [];
                $allowedAttributes = \array_key_exists($k, $allowanceList) ? $allowanceList[$k][self::ALLOWED_ATTRIBUTES_KEY] : [];

                if (\is_string($k)) {
                    $filteredKey = self::filterValue($k, $regex, $stripTags, $allowedHtmlTags, $allowedAttributes);
                } else {
                    $filteredKey = $k;
                }

                if ($filteredKey === '' || $filteredKey === null) {
                    continue;
                }

                if (\is_array($v)) {
                    $process[$key][$filteredKey] = self::filterArrayValue($v, $regex, $stripTags, $allowedHtmlTags, $allowedAttributes);
                    continue;
                }

                if (\is_string($v)) {
                    $process[$key][$filteredKey] = self::filterValue($v, $regex, $stripTags, $allowedHtmlTags, $allowedAttributes);
                    continue;
                }

                $process[$key][$filteredKey] = $v;
            }
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.