<?php
	
	list($month, $year) = explode(" ", date('F Y', strtotime('-3 month')));
	
	var_dump($month);
	var_dump($year);
	
	// For the first example
	$where1 = array(
	    2014 => array(
	        'April',
	        'May'
	    )
	);
	
	// For the second example
	$where2 = array(
	    2013 => array(
	        'December'
	    ),
	    2014 => array(
	        'January'
	    )
	);
	
	$where3 = array();
	
	for ($prev_months = 1; $prev_months <= 5; $prev_months++) {
		list($month, $year) = explode(" ", date('F Y', strtotime("-$prev_months month")));
		$where3[$year][] = $month;
	}
	
	$where4 = array();
	
	for ($prev_months = 1; $prev_months <= 24; $prev_months++) {
		list($month, $year) = explode(" ", date('F Y', strtotime("-$prev_months month")));
		$where4[$year][] = $month;
	}
	
	/**
	 * Outputs
	 * [where1] (month IN ('April', 'May') AND year = 2014)
	 * 
	 * [where2] (month IN ('December') AND year = 2013) OR (month IN ('January') AND year = 2014)
	 * 
	 * [where3] (month IN ('April', 'March', 'February', 'January') AND year = 2014) OR (month IN ('December') AND year = 2013)
	 * 
	 * [where4] (month IN ('April', 'March', 'February', 'January') AND year = 2014) OR (month IN ('December', 'November', 'October', 'September', 'August', 'July', 'June', 'May', 'April', 'March', 'February', 'January') AND year = 2013) OR (month IN ('December', 'November', 'October', 'September', 'August', 'July', 'June', 'May') AND year = 2012)
	 */
	foreach(array('where1','where2', 'where3', 'where4') as $where_name) {
		
		$clause = '';
		
		$where = $$where_name;
		
		$wheres = array();
		
		foreach($where as $year => $months) {
		    $wheres[] = "month IN ('" . implode("', '", $months) . "') AND year = $year";
		}
		
		$clause = '('.implode (') OR (', $wheres).')';
		
		echo "[$where_name] $clause\n\n";
	}