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;
}
});
我有一个项目的大量时间记录,我想过滤掉除单个员工发布的记录之外的所有时间记录。
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;
}
});