【发布时间】:2013-03-19 04:50:18
【问题描述】:
我能否在 PHP >=5.4 中使用闭包合并数组或从数组中删除重复项,其方式与在 Objective C 中使用块或在 C++ 中使用 lambda 的方式相同?
- 是否可以使用谓词/闭包/块/lambda 作为此类函数的参数。
即:
$a = array('blah','bleh');
$b = array('blih, 'bloh');
$arr = array_merge( function() use (&$a,&$b) { return $a == $b ? true : false; } );
(上面的例子过于简单,我想为对象做这个)。
- 可以内联完成还是我应该总是将闭包定义为 变量?
- 是否有性能提升,还是运行相同?
【问题讨论】:
-
您可能会使用带有闭包的 array_filter 来消除重复项;是的,对象数组完全有可能
-
谢谢@MarkBaker 的回答,你会得到荣誉的 :) 顺便说一句,这是正确的语法吗?
-
@Alex .. 预期的输出是什么,因为您想合并而不是过滤...?
-
@Baba 在这种情况下是我希望没有重复的合并对象数组的数组。
-
那么,
array_unique(array_merge())?