0

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

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

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

4

1 回答 1

0

Calimero 指出,这对这项工作来说是错误的工具。使用array_filter可以达到预期的效果。Array_walk 似乎是为通过引用修改单个数组项而设计的。

这就是如何实现我想要的。

$timeRecords = array_filter($timeRecords, function($timeRecord) use ($employee) {
    if ($timeRecord->EmployeeId == $employee->EmployeeId) {
        return $timeRecord;
    }
});
于 2015-11-24T19:53:49.053 回答