function ItemList::filter

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php \Drupal\Core\TypedData\Plugin\DataType\ItemList::filter()
  2. 8.9.x core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php \Drupal\Core\TypedData\Plugin\DataType\ItemList::filter()
  3. 11.x core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php \Drupal\Core\TypedData\Plugin\DataType\ItemList::filter()

Overrides ListInterface::filter

1 call to ItemList::filter()
FieldItemList::filterEmptyItems in core/lib/Drupal/Core/Field/FieldItemList.php
Filters out empty field items and re-numbers the item deltas.

File

core/lib/Drupal/Core/TypedData/Plugin/DataType/ItemList.php, line 272

Class

ItemList
A generic list class.

Namespace

Drupal\Core\TypedData\Plugin\DataType

Code

public function filter($callback) {
    if (isset($this->list)) {
        $removed = FALSE;
        // Apply the filter, detecting if some items were actually removed.
        $this->list = array_filter($this->list, function ($item) use ($callback, &$removed) {
            if (call_user_func($callback, $item)) {
                return TRUE;
            }
            else {
                $removed = TRUE;
            }
        });
        if ($removed) {
            $this->rekey();
        }
    }
    return $this;
}

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