$id > 0)); if (!$optionIds) { return true; } foreach ($optionIds as $optionId) { $inserted = DB::insert( 'insert into user_custom_field_value_options (value_id, option_id, created) values (?,?,NOW())', (string) $valueId, (string) $optionId ); if ($inserted === false) { return false; } } return true; } public function listOptionIdsByValueIds(array $valueIds): array { $valueIds = array_values(array_unique(array_map('intval', $valueIds))); $valueIds = array_values(array_filter($valueIds, static fn ($id) => $id > 0)); if (!$valueIds) { return []; } $rows = DB::select( 'select value_id, option_id from user_custom_field_value_options where value_id in (???)', $valueIds ); if (!is_array($rows)) { return []; } $map = []; foreach ($rows as $row) { $data = $row['user_custom_field_value_options'] ?? $row; if (!is_array($data)) { continue; } $valueId = (int) ($data['value_id'] ?? 0); $optionId = (int) ($data['option_id'] ?? 0); if ($valueId <= 0 || $optionId <= 0) { continue; } $map[$valueId] ??= []; $map[$valueId][] = $optionId; } foreach ($map as &$ids) { $ids = array_values(array_unique(array_map('intval', $ids))); sort($ids, SORT_NUMERIC); } unset($ids); return $map; } }