Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter Cria um novo mapa usando um callable para determinar quais pares incluir

Descrição

public Ds\Map::filter(callable $callback = ?): Ds\Map

Cria um novo mapa usando um callable para determinar quais pares incluir.

Parâmetros

callback

callback(mixed $key, mixed $value): bool

callable opcional que retorna true se o par deve ser incluído, false caso contrário.

Se um callback não for fornecido, apenas os valores que são true (veja conversão para booleano) serão incluídos.

Valor Retornado

Um novo mapa contendo todos os pares para os quais o callback retornou true, ou todos os valores que se convertem para true se um callback não foi fornecido.

Exemplos

Example #1 Exemplo de Ds\Map::filter() usando uma função callback

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
    return $key % 2 == 0;
}));
?>

O exemplo acima produzirá algo semelhante a:

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Example #2 Exemplo de Ds\Map::filter() sem uma função callback

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

O exemplo acima produzirá algo semelhante a:

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