Tableau à plusieurs dimension
Résolu
chabinot
Messages postés
322
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une classe Date dont voici le code :
Mon code index.php :
Quand j'exécute index.php dans le navigateur :
j'obtiens bien :
Array
(
[1] => Array
(
[1] => dimanche 01
[2] => lundi 02
[3] => mardi 03
[4] => mercredi 04
[5] => jeudi 05
[6] => vendredi 06
[7] => samedi 07
[8] => dimanche 08
[9] => lundi 09
[10] => mardi 10
[11] => mercredi 11
[12] => jeudi 12
[13] => vendredi 13
[14] => samedi 14
[15] => dimanche 15
[16] => lundi 16
[17] => mardi 17
[18] => mercredi 18
[19] => jeudi 19
[20] => vendredi 20
[21] => samedi 21
[22] => dimanche 22
[23] => lundi 23
[24] => mardi 24
[25] => mercredi 25
[26] => jeudi 26
[27] => vendredi 27
[28] => samedi 28
[29] => dimanche 29
[30] => lundi 30
[31] => mardi 31
)
Comment récupérér les valeurs de chaque jour du mois ?
Exemple : [1] => dimanche 01, etc..
Un grand merci à celui qui me dépannera.
Je suis un peu novice en PHP.
J'ai une classe Date dont voici le code :
<?php /** * Class Date */ class Date { public $days = [1 => 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche']; public $months = [1 => 'janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; var $jours = []; /** * @param $year * @return array */ public function getAll($year) { $r = []; $i = 0; $date = new DateTime($year . '-01-01'); while($date->format('Y') <= $year) { $i++; $y = $date->format('Y'); $m = $date->format('n'); $d = $date->format('j'); $w = str_replace('0', '7', $date->format('w')); $r[$y][$m][$d] = $w; $date->add(new DateInterval('P1D')); } return $r; } public function getAllDate($year) { $r = []; $i = 0; $jours = []; $date = new DateTime($year . '-01-01'); while ($date->format('Y') <= $year) { $i++; $y = $date->format('Y'); $m = $date->format('n'); $d = $date->format('j'); $w = str_replace('0', '7', $date->format('w')); $jours = $this->rtvDatew($date->format('Y-m-d')); $r[$y][$m][$d] = $jours; $date->add(new DateInterval('P1D')); } return $r; } public function rtvDatew($date = null) { $date = new DateTime($date); $jour = ['', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche']; $mois = ['', 'janvier', 'févier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']; $day = $date->format('N'); $d = $date->format('d'); return $jour[$day] . ' ' . $d; }
Mon code index.php :
<?php require "class/Autoloader.php"; Autoloader::register(); // Date $date = new Date(); $year = date('Y'); // Tableau Année - Mois - Jour $dates = $date->getAllDate($year); ?> <!DOCTYPE html> <html lang="fr-FR"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-COMPATIBLE" content="ie-edge"> <title>Calendrier</title> <!-- TYPOGRAPHIE --> <link href="https://fonts.googleapis.com/css?family=Open+Sans|Parisienne|Roboto|Lora|Megrim" rel="stylesheet"> <!-- CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <link rel="stylesheet" href="css/app.css"> <link rel="stylesheet" href="css/footer.css"> <!-- SCRIPTS --> <script src="js/time.js"></script> </head> <body> <header class="header"> <div class="date"><?= $date->today(); ?> - Sem : <?= $date->week(); ?> - Jour : <?= $date->dayofYear(); ?></div> <div class="time" id="time"><script>window.onload=dsptime('time');</script></div> <h1 class="text-center"><a href="/" rel="nofollow noopener noreferrer" target="_blank">Calendrier</a></h1> </header> <div class="section"> <div class="container-fluid"> <div class="periods"> <div class="year"><?= 'Année : ' . $year; ?></div> <div class="months"> <ul> <?php foreach ($date->months as $id=>$m) : ?> <li class="mois"><?= $m ?></li> <?php endforeach; ?> </ul> </div> <div class="clear"></div> <?php $dates = current($dates); ?> </div> </div> </div> <div class="section"> <pre><?php print_r($dates); ?></pre> </div> <footer class="footer"> <p>© Copyright <a href="">Amaury le Cour</a>. Tous Droits Réservés</p> </footer> </body> </html>
Quand j'exécute index.php dans le navigateur :
j'obtiens bien :
Array
(
[1] => Array
(
[1] => dimanche 01
[2] => lundi 02
[3] => mardi 03
[4] => mercredi 04
[5] => jeudi 05
[6] => vendredi 06
[7] => samedi 07
[8] => dimanche 08
[9] => lundi 09
[10] => mardi 10
[11] => mercredi 11
[12] => jeudi 12
[13] => vendredi 13
[14] => samedi 14
[15] => dimanche 15
[16] => lundi 16
[17] => mardi 17
[18] => mercredi 18
[19] => jeudi 19
[20] => vendredi 20
[21] => samedi 21
[22] => dimanche 22
[23] => lundi 23
[24] => mardi 24
[25] => mercredi 25
[26] => jeudi 26
[27] => vendredi 27
[28] => samedi 28
[29] => dimanche 29
[30] => lundi 30
[31] => mardi 31
)
Comment récupérér les valeurs de chaque jour du mois ?
Exemple : [1] => dimanche 01, etc..
Un grand merci à celui qui me dépannera.
Je suis un peu novice en PHP.
A voir également:
- Tableau à plusieurs dimension
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Dimension 4 - Télécharger - Optimisation
2 réponses
Bonjour,
Alors avant tout je ne vois pas où sont définies tes méthodes dans ta classe :
Pour ton notre problème tu souhaites faire quoi exactement ? Les parcourir où simplement accéder à une date ?
Pour accéder à « dimanche 01 », par exemple, tu fais juste :
Alors avant tout je ne vois pas où sont définies tes méthodes dans ta classe :
$date->today(); $date->week(); $date->dayofYear();
Pour ton notre problème tu souhaites faire quoi exactement ? Les parcourir où simplement accéder à une date ?
Pour accéder à « dimanche 01 », par exemple, tu fais juste :
$dates[1][1]