Bonjour,
Je suis sous Symfony 5, ma question : Est-il possible de trier les données d'un array_merge (de plusieurs entités) -> par createdAt ?
$VariableUn = $this->getDoctrine()
->getRepository(Un::class)
->findAll();
$VariableDeux = $this->getDoctrine()
->getRepository(Deux::class)
->findAll();
$VariableTrois = $this->getDoctrine()
->getRepository(Trois::class)
->findAll();
$ListeVariable = array_merge(
$VariableUn,
$VariableDeux,
$VariableTrois
);
Ce que je veux --> Trier toutes les données de $ListeVariable par date de création dans ma vue (tableau html)
Ce que j'obtiens --> Je peux trier chaque variable indépendamment les unes des autres via
$VariableUn = $this->getDoctrine()
->getRepository(Un::class)
->createQueryBuilder('a')
->orderBy('a.createdAt', 'DESC')
->getQuery()
->getResult() ;
etc etc
Mais forcement ça ne donne pas le résultat attendu sur ma vue une fois mergé avec les autres.
merci
Tu peux faire quelque chose comme ça par exemple :
$array = [
0 => [
"name" => "a",
"date" => "2020-12-05"
],
1 => [
"name" => "b",
"date" => "2020-12-02"
],
2 => [
"name" => "c",
"date" => "2020-12-01"
],
3 => [
"name" => "d",
"date" => "2020-12-04"
],
4 => [
"name" => "e",
"date" => "2020-12-03"
],
5 => [
"name" => "f",
"date" => "2020-12-06"
],
];
usort(
$array,
function ($a, $b) {
$dateA = new DateTime($a['date']);
$dateB = new DateTime($b['date']);
return $dateA->getTimeStamp() - $dateB->getTimeStamp();
}
);