PHP array_filter,如何在回调中获取密钥?

2022-08-30 21:02:03

array_filter — 使用回调函数筛选数组的元素

array array_filter ( array $input [, callback $callback ] )

回调能否获取当前数组值的键以及如何获取?


答案 1

来自文档:PHP 5.6.0 添加了可选的标志参数和常量,以及ARRAY_FILTER_USE_KEYARRAY_FILTER_USE_BOTH

http://php.net/manual/en/function.array-filter.php


答案 2

在之前的评论中,您概述了您实际上正在寻找这样的东西:

foreach ($t as $k => $v)
    if (!array_key_exists($k, $valid))
        unset($t[$k])

因此,实际上要从数组中删除数组中没有键的所有值。$t$valid

其 PHP 函数称为 array_intersect_key。交集等于过滤结果:

$filtered = array_intersect_key($t, $valid);