un array dans un array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : un array dans un array

Re: un array dans un array

par yann18 » 04 sept. 2016, 14:24

bonjour,
si pour une date donnée, t'as plusieurs événements il faut créer une 2ème entrée pour le tableau ($events['$r[datevt]'][])
/**
 *
 * @Route("/agenda", name="agenda")
 *
 */
public function view_agendaAction()
{
 
    $req = $this->getDoctrine()
        ->getManager()
        ->createQuery('SELECT e.id,e.title,e.description,e.datevt FROM AppBundle:events e WHERE e.datevt BETWEEN :start AND :end'
            )->setParameter('start', new \Datetime(date('Y').'-01-01'))
             ->setParameter('end',   new \Datetime(date('Y').'-12-31'))
        ->getResult();
 
$events = array();
foreach ($req as $r) {
   $events[$r["datevt"]][] = array(
                    $r["id"] => $r["title"],
                    );

  } //foreach
print_r($events);
} //view_agendaAction

un array dans un array

par dfo » 04 sept. 2016, 09:38

Bonjour bonjour :)

Je pense que cette enigme est assez simple mais étant débutant je ne saisie pas encore tout et m'emèle les pinceaux :)
Voila mon problème:

j'aimerai passer de ce résultat là:
Array ( [id] => 1 [title] => Evènement 1 [datevt] => 1472335200 )
Array ( [id] => 2 [title] => Evènement 2 [datevt] => 1472508000 )

à celui-ci:
Array
(
[1472335200] => Array
(
[1] => Evènement 1
)

[1472508000] => Array
(
[2] => Evènement 2
)
)


Et celà avec le code de départ suivant
/**
 *
 * @Route("/agenda", name="agenda")
 *
 */
public function view_agendaAction()
{
 
    $req = $this->getDoctrine()
        ->getManager()
        ->createQuery('SELECT e.id,e.title,e.description,e.datevt FROM AppBundle:events e WHERE e.datevt BETWEEN :start AND :end'
            )->setParameter('start', new \Datetime(date('Y').'-01-01'))
             ->setParameter('end',   new \Datetime(date('Y').'-12-31'))
        ->getResult();
 
     
    $r = array();
    foreach ($req as $r) {
        $r["datevt"] = $r["datevt"]->getTimestamp();
        $r["id"];
        $r["title"];
        print_r($r);
    }
 
 
 
 
    return $this->render('calendar/calendar.html.php', array('req' => $req));
}
Est-ce que l'un d'entre vous peux m'aider? :)
Merci d'avance,