HH\Vector::filterWithKey

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.

Parameters

  • (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.

Returns

  • 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.

Examples

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

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

var_dump($odd_elements);
Output
object(HH\Vector)#3 (2) {
  [0]=>
  string(5) "green"
  [1]=>
  string(6) "yellow"
}