I am having problems with a multidimensional array in PHP because I lost some values โโwhen I try to add other data to my array.
Here is my source code:
$reponse = $bdd->query("select OrderDate, NomChaine, NomJob, Debut, Fin from ReportJobs where NomJob in ('NPT01000', 'NPT11999') order by OrderDate ASC;");
while ($donnees = $reponse->fetch())
{
$num_semaine = date('W', strtotime($donnees['OrderDate']));
$num_journee = date('N', strtotime($donnees['OrderDate']));
$retour[$num_semaine][$num_journee][substr($donnees['NomChaine'], 0, -2)][$donnees['NomJob']] = array(
'Debut' => $donnees['Debut'],
'Fin' => $donnees['Fin']
);
}
$reponse->closeCursor();
var_dump($retour['07']['1']);
Here is the (correct and necessary) conclusion var_dump($retour['07']['1']);:

Then I tried to keep the value of "OrderDate" at the level $retour[$num_semaine][$num_journee].
Here is the new code:
$reponse = $bdd->query("select OrderDate, NomChaine, NomJob, Debut, Fin from ReportJobs where NomJob in ('NPT01000', 'NPT11999') order by OrderDate ASC;");
while ($donnees = $reponse->fetch())
{
$num_semaine = date('W', strtotime($donnees['OrderDate']));
$num_journee = date('N', strtotime($donnees['OrderDate']));
$retour[$num_semaine][$num_journee] = array(
'Date' => $donnees['OrderDate']
);
$retour[$num_semaine][$num_journee][substr($donnees['NomChaine'], 0, -2)][$donnees['NomJob']] = array(
'Debut' => $donnees['Debut'],
'Fin' => $donnees['Fin']
);
}
$reponse->closeCursor();
var_dump($retour['07']['1']);
var_dump($retour['07']['1']);:

Some values โโare now missing.
I tried it the other way around:
$reponse = $bdd->query("select OrderDate, NomChaine, NomJob, Debut, Fin from ReportJobs where NomJob in ('NPT01000', 'NPT11999') order by OrderDate ASC;");
while ($donnees = $reponse->fetch())
{
$num_semaine = date('W', strtotime($donnees['OrderDate']));
$num_journee = date('N', strtotime($donnees['OrderDate']));
$retour[$num_semaine][$num_journee][substr($donnees['NomChaine'], 0, -2)][$donnees['NomJob']] = array(
'Debut' => $donnees['Debut'],
'Fin' => $donnees['Fin']
);
$retour[$num_semaine][$num_journee] = array(
'Date' => $donnees['OrderDate']
);
}
$reponse->closeCursor();
var_dump($retour['07']['1']);
var_dump($retour['07']['1']);:

It seems that the second instruction erased everything that was written first.
Has anyone got an idea on how I can do this right?
Thanks to everyone who read to the end.