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