将ArrayCollection与对象数组进行比较

时间:2017-01-01 11:15:14

标签: php doctrine-orm symfony

我在与Groupe实体的ManyToMany关系中有一个StatColle实体。 我想比较一个Groupe对象数组和一个arrayCollection。

这是我的代码:

//Create array of Groupe objects
$nameOfSelectedGroupes = $request->request->get('selectedGroupes');

        $groupes= [];
        foreach ($nameOfSelectedGroupes as $nameOfSelectedGroupe) {
            $groupe = $em->getRepository(Groupe::class)->findBy(['nom' => $nameOfSelectedGroupe]);
            $groupes[] = $groupe;
        }

// Compare array of objects with ArrayCollection of objects
...request to get StatColle...
foreach ($resultats as $resultat)
    {
        if ($groupes == $resultat->getGroupes()->toArray())
        return $resultat;
    }
...

这总是返回null。我认为$resultat->getGroupes()->toArray()不是将Groupes链接到StatColle实体的正确方法。

你有想法比较这些数组吗?

1 个答案:

答案 0 :(得分:1)

我认为你无法比较这样的数组。尝试array_diff,然后检查结果数组是否为empty(意味着它们是相同的):

foreach ($resultats as $resultat){
    $compare = array_diff($groupes, $resultat->getGroupes()->toArray());
    if (empty($compare)){
        return $resultat;
    }
}

我认为这应该有用。