You are here

public function LinkCollection::filter in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/jsonapi/src/JsonApiResource/LinkCollection.php \Drupal\jsonapi\JsonApiResource\LinkCollection::filter()

Filters a LinkCollection using the provided callback.


  boolean callback(string $key, \Drupal\jsonapi\JsonApiResource\Link $link, mixed $context))

Parameters

callable $f: The filter callback. The callback has the signature below.

Return value

\Drupal\jsonapi\JsonApiResource\LinkCollection A new, filtered LinkCollection.

File

core/modules/jsonapi/src/JsonApiResource/LinkCollection.php, line 149

Class

LinkCollection
Contains a set of JSON:API Link objects.

Namespace

Drupal\jsonapi\JsonApiResource

Code

public function filter(callable $f) {
  $links = iterator_to_array($this);
  $filtered = array_reduce(array_keys($links), function ($filtered, $key) use ($links, $f) {
    if ($f($key, $links[$key], $this->context)) {
      $filtered[$key] = $links[$key];
    }
    return $filtered;
  }, []);
  return new LinkCollection($filtered, $this->context);
}