Tableau à plusieurs dimension
Résolu
chabinot
Messages postés
391
Statut
Membre
-
jordane45 Messages postés 40050 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 40050 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
- Dimension 4 - Télécharger - Optimisation
- Tableau croisé dynamique - Guide
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]