$form */ $form = iterator_to_array($forms); $pickedRegroupment = []; foreach ($this->regroupmentRepository->findAll() as $regroupment) { [$contained, $notContained] = $regroupment->getCenters()->partition(static function (Center $center) { }); if (0 === count($notContained)) { $pickedRegroupment[] = $regroupment; } } $form['regroupment']->setData($pickedRegroupment); $form['centers']->setData($data); } /** * @param iterable $forms * @param array $data * * @return void */ public function mapFormsToData($forms, &$data) { /** @var array $forms */ $forms = iterator_to_array($forms); $centers = []; foreach ($forms['center']->getData() as $center) { $centers[spl_object_hash($center)] = $center; } foreach ($forms['regroupment']->getData() as $regroupment) { /** @var Regroupment $regroupment */ foreach ($regroupment->getCenters() as $center) { $centers[spl_object_hash($center)] = $center; } } $data = array_values($centers); } }