function LinkCollection::filter

Same name and namespace in other branches
  1. 8.9.x core/modules/jsonapi/src/JsonApiResource/LinkCollection.php \Drupal\jsonapi\JsonApiResource\LinkCollection::filter()
  2. 10 core/modules/jsonapi/src/JsonApiResource/LinkCollection.php \Drupal\jsonapi\JsonApiResource\LinkCollection::filter()
  3. 11.x 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 150

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.