PHP array_merge或array_unique和closures

时间:2013-03-28 16:24:45

标签: php arrays closures

我是否可以使用闭包合并数组,或者使用闭包从PHP> = 5.4中移除数组中的重复项,方法与使用块在Objective C中完成的方式相同,或者使用lambda在C ++中完成?

  • 是否可以使用谓词/闭包/块/ lambda作为此类函数的参数。

即:

$a = array('blah','bleh');
$b = array('blih, 'bloh');
$arr = array_merge( function() use (&$a,&$b) { return $a == $b ? true : false; } );

(以上示例过于简单,我想为对象执行此操作)。

  • 可以内联完成,还是应该始终将闭包定义为 $ var?
  • 是否有性能提升,还是运行相同?

1 个答案:

答案 0 :(得分:1)

你可以使用array_filter()。我的猜测是你需要过滤1个数组作为参数,并将第二个数组添加为use()。当当前值不在use()中传递的数组中时,您可以添加它。 http://php.net/manual/en/function.array-filter.php

这只有当你需要根据对象ofc内部的值检查$ a == $ b对象时才会很棘手;)