我在与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实体的正确方法。
你有想法比较这些数组吗?
答案 0 :(得分:1)
我认为你无法比较这样的数组。尝试array_diff,然后检查结果数组是否为empty(意味着它们是相同的):
foreach ($resultats as $resultat){
$compare = array_diff($groupes, $resultat->getGroupes()->toArray());
if (empty($compare)){
return $resultat;
}
}
我认为这应该有用。