public function storeUsersSystemsSettings($user_id, $system_id_array, $system_operating_systems_array, $system_hardware_array, $system_delete_array) { $userSystemsDictionary = $this->getUserSystemsDictionary($user_id); $last_system_index = 0; foreach ($system_id_array as $i => $system_id) { $system_operating_systems = $system_operating_systems_array[$i]; $system_hardware = $system_hardware_array[$i]; $system_delete = intval($system_delete_array[$i]); if ($system_delete) { if (array_key_exists($system_id, $userSystemsDictionary)) { $system = $userSystemsDictionary[$system_id]; $system->removeRows(' id = ' . $system->id . ' '); } } elseif (array_key_exists($system_id, $userSystemsDictionary)) { $system = $userSystemsDictionary[$system_id]; $system->user_id = $user_id; $system->operating_systems = $system_operating_systems; $system->hardware = $system_hardware; $system->index = ++$last_system_index; $system->save(); } elseif (!empty($system_operating_systems) || !empty($system_hardware)) { $system = new UserSystemModel(); $system->user_id = $user_id; $system->operating_systems = $system_operating_systems; $system->hardware = $system_hardware; $system->index = ++$last_system_index; $system->insert(); } } }