This API is part of the Hack Standard Library, not HHVM itself.

Returns a new keyset containing only the values for which the given predicate returns true

namespace HH\Lib\Keyset;

function filter<Tv as arraykey>(
    Traversable<Tv> $traversable,
  ?(function(Tv):bool) $value_predicate = NULL,
): keyset<Tv>;

The default predicate is casting the value to boolean.

To remove null values in a typechecker-visible way, see Keyset\filter_nulls().