ho fatto una tabella <table> nella cui prima riga sono presenti tutte le date del mese, una per ogni colonna;ho estrapolato con una query tutte le etichette delle attività le quali le devo inserire con una serie di cicli nella prima colonna e nel mezzo della tabella devo inserire i lavoratori. Credo di essere arrivato quasi al mio intento ma sono giorni che ci butto il sangue. Per uno esperto è sicuramente una sciocchezza ma per un neofita come in me nel php è un lavoro estenuante. Sono arrivato a livello logico dove voglio ma sul codice non riesco. ve lo posto senza la parte delle query magari qualcuno mi illumina con dei suggerimenti.
Codice PHP:


  $i
="0";    while ($row mysqli_fetch_array($risultato)) {        $data[$i] = $row['turnazione_data'];        $lavoratore[$i] = $row['id_lavoratore'];         $ora[$i] = $row['id_orario_turno'];        $i++;    }//estrapolazione dati query in array con valori etichette turni 
    
$i="0";    while ($row mysqli_fetch_array($etichetta)) {        $baseore[$i] = $row['orturno_etichetta'];        $i++;    }
        
//conteggio indici 
$contdatacount($data);$contlav count($lavoratore);$contora count($ora);$contetichetta count($baseore);$giorno "01";$mese "01";$anno "2019";$totgiornimese date("t"strtotime($mese "/" $giorno "/" $anno));$z="0";//inizio tabellaecho "<table class='tab-turnazione'><tr><td> TURNI </td>";
//inizio ciclo data prima riga$prog ="0";for ($i="0"; $i < $totgiornimese; $i++ ){    echo "<td>" . date("d D", mktime(0,0,0,$mese, $giorno + $prog, $anno)) . "</td>";    $prog++;}echo "</tr>";$prog ="0";$bool="false";

//inizio ciclo prima colonna  etichettefor ($y="0"; $y < $contetichetta; $y++){    echo "<tr>";    echo "<td>" . $baseore[$y] . "</td>";    $check_etichetta = $baseore [$y];//inizio ciclo date da indice 0 a tot giorni mese        for($j="0"; $totgiornimese >= $j; $j++){            $datatop = date("Y/m/d", mktime(0,0,0,$mese, $giorno + $prog, $anno));//inizio ciclo da indice 0 a tot lavoratori                for($x="0"; $contlav > $x; $x++){                     if($ora[$x] == $check_etichetta){//inizo ciclo da indice 0 a tot lavoratori con operatore logico per controllo etichetta e data                        while(($z < $contlav) && ($bool = "false") ){                            $check_data = date("Y/m/d", strtotime($data[$z])); // da vedere                            if($check_data == $datatop){                                echo "<td>" . $lavoratore[$x] . "</td>";                                    $bool = "true";                                        $prog + 1;                                                            } else{                                $z++;                            }                    }                         $z="0";                } else {                   // $x++; //da verificare                }            }        $x="0";        }    $j++;    echo "</tr>";} 
?> 
Presumo sia un problema di indici.