public static final function each(array $Source, callable $Callback, $keys = null): array {
		return array_walk($Source, function(&$value, $key, $keys) use ($Callback) {
			$value = count($keys) < 1 || in_array($key, $keys) ? $Callback($key, $value) : $value; },
				array_filter(Arr::simplify(array_slice(func_get_args(), 2)))) ? $Source : [];
	}
public static final function each(array $Source, callable $Callback, $keys = null): array {
		return array_walk($Source, function(&$value, $key, $keys) use ($Callback) {
			$value = count($keys) < 1 || in_array($key, $keys) ? $Callback($key, $value) : $value; },
				array_filter(Arr::simplify(array_slice(func_get_args(), 2)))) ? $Source : [];
	}
public static final function each ( array $ Source , callable $ Callback , $ keys = null ) : array { return array_walk ( $ Source , function ( & $ value , $ key , $ keys ) use ( $ Callback ) { $ value = count ( $ keys ) < 1 || in_array ( $ key , $ keys ) ? $ Callback ( $ key , $ value ) : $ value ; } , array_filter ( Arr :: simplify ( array_slice ( func_get_args ( ) , 2 ) ) ) ) ? $ Source : [ ] ; }
Applies the given function to each element of an array
or to the specified subset, if the third argument is provided.

@param array $Source
@param callable $Callback
@param mixed $keys, ...
@return array
Applies the given function to each element of an array or to the specified subset if the third argument is provided .