Ciao ragazzi,
mi chiedevo se qualcuno gentilmente mi potrebbe dare una mano a risolvere un problema che mi sta mettendo in difficoltà.
Diciamo che ho in input un array che contiene coppie di valori data-componenti come questo:

Array ( [2015-07-25] => Un componente [2014-12-31] => Due componenti ...... )

Io devo scegliere un valore secondo questo schema:
1) Se l'anno della data di ultima registrazione (la prima coppia di valori nell' array) è minore dell'anno in corso prendo quello stesso valore (cioè mi va bene quella coppia di valori).
2) Se l'anno della data di ultima registrazione (la prima coppia di valori nell' array) è uguale all'anno in corso devo prendere il primo valore disponibile dell'anno/i precedente/i (quello cioè più vicino al 1 gennaio dell'anno in corso).
3) Se non esistono date dell'anno/i precedente/i devo prendere il primo valore disponibile dell'anno in corso, cioè quello più vicino al 1 gennaio.

Come potrei impostare una routine che mi estragga questo valore?

Cerco di chiarire un po'
il problema.
Sto realizzando un gestionale per una pubblica amministrazione dove un calcolo di un'imposta dipende dal numero di componenti di un nucleo familiare al 1 gennaio di ogni anno. Ovviamente registrazioni al 1 gennaio non ne esistono quindi bisognerà prendere l'ultima data disponibile dell'anno precedente e se anche esistono registrazioni nell'anno in corso andranno ignorate in quanto al primo gennaio i componenti erano quelli dell'anno precedente. Nel caso invece si tratti di un nuovo nucleo familiare censito non esisteranno valori di anni precedenti ed in questo caso andrà presa la prima iscrizione quindi la prima registrazione dell'anno in corso, mi rendo conto che è un po' contorto ma purtroppo la delibera chiede questo
Faccio un esempio pratico:
il signor Mario Rossi ha questo storico componenti :

31-12-2014 --> Due componenti
25-07-2015 --> Un componente

Caso 1, nessuna registrazione nell'anno in corso, prendo il valore 25-07-2015 --> Un componente
Caso 2, il signor Mario Rossi modifica il numero dei componenti familiari il 07/6/2016 , m'interesserà sempre il valore del 25-07-2015 in quanto al 1 gennaio 2016 il numero di componenti non era ancora stato variato.
Caso 3, il signor Rossi è un nuovo iscritto e quindi nel 2015 non aveva registrazioni. Si iscrive il 4-03-2016. In questo caso al 1 gennaio il numero componenti è zero ma da regolamento in questo caso prenderò il valore al 4 marzo.

Spero di aver chiarito un po' la natura del problema.

Grazie mille per ogni suggerimento

Massimo