Reverses a variable.
Twig_Environment $env A Twig_Environment instance:
array|Traversable|string $item An array, a Traversable instance, or a string:
Boolean $preserveKeys Whether to preserve key or not:
mixed The reversed input
function twig_reverse_filter(Twig_Environment $env, $item, $preserveKeys = false) {
if (is_object($item) && $item instanceof Traversable) {
return array_reverse(iterator_to_array($item), $preserveKeys);
}
if (is_array($item)) {
return array_reverse($item, $preserveKeys);
}
if (null !== ($charset = $env
->getCharset())) {
$string = (string) $item;
if ('UTF-8' != $charset) {
$item = twig_convert_encoding($string, 'UTF-8', $charset);
}
preg_match_all('/./us', $item, $matches);
$string = implode('', array_reverse($matches[0]));
if ('UTF-8' != $charset) {
$string = twig_convert_encoding($string, $charset, 'UTF-8');
}
return $string;
}
return strrev((string) $item);
}