(PECL ds >= 1.0.0)
Ds\Map::filter — Создаёт новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
Создаёт новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции.
callback
Опциональный аргумент типа callable, который возвращает true, если
пара должна быть включена и false, если нет.
Если callback-функция не задана, то будут включены только элементы, которые
приводятся к логическому значению true
(смотрите раздел с приведением к boolean).
Новая коллекция пар, содержащая значения, для которых
callback-функция вернула true, или все элементы, которые при
приведении к логическому типу становятся true, если параметр
callback не задан.
Пример #1 Пример Ds\Map::filter() с использованием callback-функции
<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);
var_dump($map->filter(function($key, $value) {
return $key % 2 == 0;
}));
?>Вывод приведённого примера будет похож на:
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"
}
}
Пример #2 Пример Ds\Map::filter() без callback-функции
<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);
var_dump($map->filter());
?>Вывод приведённого примера будет похож на:
object(Ds\Map)#2 (3) {
[0]=>
int(1)
[1]=>
string(1) "a"
[2]=>
bool(true)
}