我有一个项目的大量时间记录,我想过滤除一个员工发布的所有时间记录。
array_walk($timeRecords, function($timeRecord, $index) use ($employee) {
if ($timeRecord->employeeId != $employee->id) {
unset($timeRecords[$index]);
}
});
你可以看到我想要做的事情。你如何使用anon函数和闭包来做这个?显然,$ timeRecords没有在匿名函数中定义。感谢。
答案 0 :(得分:0)
Calimero指出这是工作的错误工具。使用array_filter可以实现所需的效果。 Array_walk似乎是为了通过引用修改单个数组项而设计的。
这是如何实现我想要的。
$timeRecords = array_filter($timeRecords, function($timeRecord) use ($employee) {
if ($timeRecord->EmployeeId == $employee->EmployeeId) {
return $timeRecord;
}
});