# Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Créer une nouvelle séquence en utilisant un callable pour déterminer quelles valeurs inclure

### Description

abstract public Ds\Sequence::filter(callable `$callback` = ?): Ds\Sequence

Créer une nouvelle séquence en utilisant un callable pour déterminer quelles valeurs inclure.

### Liste de paramètres

`callback`

  callback(mixed `$value`): bool

  Un callable optionnel qui retourne `true` si la paire doit être incluse, `false` sinon.

  Si aucune fonction de rappel n'est fournie, seules les valeurs qui sont `true` (voir conversion en booléen) seront incluses.

### Valeurs de retour

Une nouvelle sequence contenant toutes les paires pour lesquelles soit le `callback` a retourné `true`, soit toutes les valeurs qui se convertissent en `true` si un `callback` n'a pas été fourni.

### Exemples

Exemple #1 Exemple de Ds\Sequence::filter() utilisant une fonction de rappel

`<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);
var_dump($sequence->filter(function($value) {
return $value % 2 == 0;
}));
?>`

Résultat de l'exemple ci-dessus est similaire à :

    object(Ds\Vector)#3 (2) {
      [0]=>
      int(2)
      [1]=>
      int(4)
    }

Exemple #2 Exemple de Ds\Sequence::filter() sans fonction de rappel

`<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);
var_dump($sequence->filter());
?>`

Résultat de l'exemple ci-dessus est similaire à :

    object(Ds\Vector)#2 (3) {
      [0]=>
      int(1)
      [1]=>
      string(1) "a"
      [2]=>
      bool(true)
    }