<?php
declare(strict_types=1);

$map = [
	'first',
	'second',
	'third',
	'fourth',
	'fifth',
	'sixth',
	'seventh',
	'eighth',
	'ninth',
	'tenth',
	'eleventh',
	'twelfth',
];
	
function extend(string $vowel, int $iteration): string {
	return str_repeat($vowel, rand(1, $iteration));
}

foreach($map as $x => $day){
	$verse = "";
	$verse .= "on the {$day} day of Christmas my true love sent to me,";
	
	switch($day){
		case 'twelfth':
			$verse .= "twelve drummers drumming,";
		case 'eleventh':
			$verse .= "eleven pipers piping,";
		case 'tenth':
			$verse .= "ten lords a-leaping,";
		case 'ninth':
			$verse .=  "nine ladies dancing,";
		case 'eighth':
			$verse .= "eight maids a-milking,";
		case 'seventh':
			$verse .= "seven swans a-swimming,";
		case 'sixth':
			$verse .= "six geese a-laying,";
		case 'fifth':
			$verse .= "F" . extend("I", $x) . "VE G" . extend("O", $x) . "LDEN R" . extend("I", $x) . "NGS,";
		case 'fourth':
			$verse .= "four calling birds,";
		case 'third':
			$verse .= "three french hens,";
		case 'second':
			$verse .= "two turtle doves,";
			$verse .= "and ";
		default:
			$verse .= "a partridge in a pear tree,";
	}
	$verse = explode(",", $verse);
	array_walk($verse, function(string $val, $index){
				echo ucfirst($val), PHP_EOL;
	});
}
