Returns a Vector containing the values of the current Vector that meet a supplied condition applied to its keys and values


public function filterWithKey(
  (function(int,Tv):bool) $callback,
): Vector<Tv>;

filterWithKey()'s result contains only values whose key/value pairs satisfy the provided criterion; unlike mapWithKey(), which contains results derived from every key/value pair in the original Vector.


  • (function(int,Tv):bool) $callback - The callback containing the condition to apply to the Vector's key/value pairs. For each key/value pair, the key is passed as the first parameter to the callback, and the value is passed as the second parameter.

Return Values

  • Vector<Tv> - A Vector containing the values of the current Vector for which a user-specified test condition returns true when applied to the corresponding key/value pairs.



namespace Hack\UserDocumentation\API\Examples\Vector\FilterWithKey;

$v = Vector {'red', 'green', 'blue', 'yellow', 'purple'};

// Only include elements with an odd index
$odd_elements = $v->filterWithKey(
  ($index, $color) ==> ($index % 2) !== 0,

object(HH\Vector)#3 (2) {
  string(5) "green"
  string(6) "yellow"