Php array_walk 具有用于过滤结果的匿名函数

Php array_walk with anonymous function for filtering out results

我有一个项目的大量时间记录,我想过滤掉除单个员工发布的记录之外的所有时间记录。

array_walk($timeRecords, function($timeRecord, $index) use ($employee) {
    if ($timeRecord->employeeId != $employee->id) {
        unset($timeRecords[$index]);
    }
});

你可以看到我在做什么。你如何使用匿名函数和闭包来做到这一点?显然 $timeRecords 没有在匿名函数内部定义。谢谢

Calimero 指出该工具不适合这项工作。使用 array_filter 可以达到预期的效果。 Array_walk 似乎是为通过引用修改单个数组项而设计的。

这就是实现我想要的东西的方法。

$timeRecords = array_filter($timeRecords, function($timeRecord) use ($employee) {
    if ($timeRecord->EmployeeId == $employee->EmployeeId) {
        return $timeRecord;
    }
});