3v4l.org

run code in 300+ PHP versions simultaneously
<?php const AMENITY_ICONS_TO_ADDON_CATEGORY = [ 'wellness' => ['fieldName' => 'wellness-use', 'type' => 'category'], 'wine-tasting' => ['fieldName' => 'Welcome Drink', 'type' => 'description'], 'full-board' => [ 'fieldName' => "3 Course Menu, 4 Course Menu", 'type' => 'description', 'terms' => true ], 'half-board' => ['fieldName' => 'halfboard', 'type' => 'category'], 'parking' => ['fieldName' => 'parking', 'type' => 'category'], ]; function getQueryDefinitionForInclusiveServices(string $term): array { $mapping = AMENITY_ICONS_TO_ADDON_CATEGORY[$term] ?? $term; $queryDefinition = []; $fieldName = 'included_amenities.descriptions.icon'; $term = $mapping['term'] ?? $term; if (is_array($mapping)) { $fieldName = $mapping['type'] == 'category' ? 'hotel.included_addons.category.keyword' : 'hotel.included_addons.en_GB.description.keyword'; if (!empty($mapping['terms'])) { $queryDefinition['type'] = 'terms'; } } $queryDefinition['field'] = $fieldName; $queryDefinition['term'] = $term; return $queryDefinition; } var_dump(getQueryDefinitionForInclusiveServices('full-board'));

preferences:
32.68 ms | 404 KiB | 5 Q