Buon giorno.
Nella tabella tb_ferie ho due campi "dal","al" per tot operatori, esempio:
id | id_operatore | dal | al
1 1 2018-05-01 2018-05-16
2 1 2018-05-30 2018-05-31
3 2 2018-05-01 2018-05-16
Devo trovare per ogni record la sequenza numerica che manca.
creo l'array da passare alla funzione "trovaNumeroMancante" in questo modo:
Codice PHP:
$arrDal = array();
while ($rows = mysqli_fetch_object($query)) {
$arrDal[] = substr($rows->dal,8,2);
$arrDal[] = substr($rows->al,8,2);
}
echo trovaNumeroMancante($arrDal);
function trovaNumeroMancante($vettore){
# $vettore = array(1,3,4,5,7,9,11);
# contiamo gli elementi dell'array
$l = count($vettore);
# calcoliamo le differenze tra i numeri
for($i=0; $i<=$l-1; $i++) {
@$differenza = $vettore[$i+1]-$vettore[$i];
# se la differenza tra un numero e quello successivo non è 1..
if($differenza != 1) {
for($y=1; $y<=$differenza-1; $y++) {
# .. viene aggiunto il valore mancante
$val = $vettore[$i]+$y;
# stampiamo i valori mancanti
echo $val;
}
}
}
}
Il problema è che, per ogni record dovrebbe tirar fuori la sequenza mancante.
Ma, da come ho fatto io, crea un unico array con tutti i valori quindi mi ritrovo
$array(1,16,30,31,13,18), cosi facendo la funzione crea la sequenza mancante da 2 a 29.
Invece vorrei che fosse da 2 a 15, poi da 14 a 17.
Come risolvo?
Grazie.