如何通过另一个数组中存在的元素过滤我的数组

时间:2019-04-05 10:21:58

标签: controller twig symfony4

我需要用另一个数组中存在的元素过滤我的数组。

更多细节,我的控制器中有两个变量(数组):一个包含所有用户,另一个包含参与评估的用户。我需要的是第三个变量/或包含所有其余内容的树枝(数组)中的列表-因此,我可以从下拉列表中为每个评估选择它们(已经评估的名称不会出现在下拉列表)。

我现在想知道什么是最好的方法。我应该在树枝还是在控制器中这样做?

谢谢!

树枝:

<select name="user" >
   {% for user in users %}
      <option value="{{ user.idUser }}" label="{{ user.name }} ">  
   {% endfor %}
</select>

控制器:

    $evals = $this
        ->getDoctrine()
        ->getRepository(User::class)
        ->findUserGroups();             // this is my own function (based on SQL query) from repository that searches for those who participated in evaluation

    $users = $this
        ->getDoctrine()
        ->getRepository(User::class)
        ->findAll();                    //this is a variable that contains ALL users (including those who already participated in evaluation)

1 个答案:

答案 0 :(得分:0)

这最好在控制器中处理,您可以使用php的array_diff来完成。

控制器:

$evals = $this
    ->getDoctrine()
    ->getRepository(User::class)
    ->findUserGroups();

$users = $this
    ->getDoctrine()
    ->getRepository(User::class)
    ->findAll();

$non_evals = array_diff($users, $evals);

然后在树枝上

<select name="user" >
   {% for user in non_evals %}
      <option value="{{ user.idUser }}" label="{{ user.name }} ">  
   {% endfor %}
</select>