/** * @param array $files * @param array $type * @return CallbackFilterIterator */ public function filterByType($files, array $type) { $filesObject = new \ArrayObject($files); $fileOperator = $this->filelib->getFileOperator(); $filteredFiles = array(); if (version_compare(phpversion(), '5.4.0') >= 0) { $filteredFiles = new \CallbackFilterIterator($filesObject->getIterator(), function ($current, $key) use($type, $fileOperator) { return in_array($fileOperator->getType($current), $type); }); } else { $filteredFiles = new XiCallbackFilterIterator($filesObject->getIterator(), function ($current, $key) use($type, $fileOperator) { return in_array($fileOperator->getType($current), $type); }); } return $filteredFiles; }