函数名称:Ds\Map::filter()
函数适用版本:PHP 7.0 及更高版本
函数描述:该函数用于创建一个新的映射对象,其中仅包含满足指定回调函数条件的键值对。
用法:
public function filter(callable $callback): Ds\Map
该函数接受一个回调函数作为参数,并返回一个新的 Ds\Map 对象,其中包含满足指定条件的键值对。
参数:
$callback
:一个回调函数,用于对每个键值对进行条件判断。该回调函数应接受两个参数:键和值,并返回一个布尔值。如果返回值为 true,键值对将包含在新的映射对象中;如果返回值为 false,则被过滤掉。
返回值:一个新的 Ds\Map 对象,其中只包含满足指定回调函数条件的键值对。
示例:
<?php
$map = new Ds\Map([1 => 'apple', 2 => 'banana', 3 => 'cherry']);
// 创建一个新的映射对象,仅包含以奇数为键的键值对
$filteredMap = $map->filter(function ($key, $value) {
return $key % 2 !== 0;
});
print_r($filteredMap);
?>
输出:
Ds\Map Object
(
[0] => Ds\Pair Object
(
[key] => 1
[value] => apple
)
[1] => Ds\Pair Object
(
[key] => 3
[value] => cherry
)
)
在上面的示例中,我们创建了一个包含三个键值对的 Ds\Map 对象。然后,我们使用 filter()
函数来创建一个新的映射对象 $filteredMap
,其中只包含以奇数为键的键值对。在输出中可以看到,$filteredMap
中的键值对为 (1, 'apple')
和 (3, 'cherry')
,而其中的 (2, 'banana')
则被过滤掉了。