Laravel的收集过滤器通过引用传递不起作用

时间:2017-07-27 08:45:27

标签: php laravel-5 closures

你可以帮我使用闭包吗?我使用laravel的收集过滤器来检查唯一的电子邮件。下面的代码应填充过滤器函数内的$unique_email数组。我是如何使用参考传递的问题?提前谢谢。

    $unique_email = array();

    $users->filter(function ($user) use (&$unique_email) {
        if( !in_array(   $user->email , $unique_email  ) ) {
            return $unique_email[] = $user->email;              
        }
    });

    dd($unique_email); //returns empty array

2 个答案:

答案 0 :(得分:0)

过滤器必须返回布尔值

$unique_email = array();

$users->filter(function ($user) use (&$unique_email) {
    if( !in_array(   $user->email , $unique_email  ) ) {
        $unique_email[] = $user->email;
        return true;              
    }
    return false;
});

答案 1 :(得分:0)

如何使用这样的集合助手:

$usersWithUniqueMails = $users->unique('email');
$unique_email = $usersWithUniqueMails->pluck('email');