public static function ArrayUtils::filter in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/zendframework/zend-stdlib/src/ArrayUtils.php \Zend\Stdlib\ArrayUtils::filter()
Compatibility Method for array_filter on <5.6 systems
Parameters
array $data:
callable $callback:
null|int $flag:
Return value
array
File
- vendor/
zendframework/ zend-stdlib/ src/ ArrayUtils.php, line 302
Class
- ArrayUtils
- Utility class for testing and manipulation of PHP arrays.
Namespace
Zend\StdlibCode
public static function filter(array $data, $callback, $flag = null) {
if (!is_callable($callback)) {
throw new Exception\InvalidArgumentException(sprintf('Second parameter of %s must be callable', __METHOD__));
}
if (version_compare(PHP_VERSION, '5.6.0') >= 0) {
return array_filter($data, $callback, $flag);
}
$output = [];
foreach ($data as $key => $value) {
$params = [
$value,
];
if ($flag === static::ARRAY_FILTER_USE_BOTH) {
$params[] = $key;
}
if ($flag === static::ARRAY_FILTER_USE_KEY) {
$params = [
$key,
];
}
$response = call_user_func_array($callback, $params);
if ($response) {
$output[$key] = $value;
}
}
return $output;
}