【问题标题】:Php array_walk with anonymous function for filtering out results带有匿名函数的php array_walk 用于过滤掉结果
【发布时间】:2015-11-24 19:39:08
【问题描述】:

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

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

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

【问题讨论】:

  • 你可能想看看array_filter(),它稍微更适合这项任务。

标签: php closures anonymous-function array-walk


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
相关资源
最近更新 更多