Page 1 sur 1

récupérer variables d'un array multidimensionnel...

Posté : 25 mars 2011, 12:38
par CW76
Bonjour à tous, merci à ce forum et tous ses contributeurs d'exister.
Le petit nouveau que je suis a trouvé une magnifique fonction sur le web et qui me va très bien, elle stocke dans un array toutes les dates 'yyyy-mm-dd' comprises entre 2 dates données
Le pb est qu'il s'agit d'un array multimensionnel, qui est foutu comme ça :

Code : Tout sélectionner

recupererDates('2011-03-25','2011-04-04') donne : Array ( [2011] => Array ( [03] => Array ( [0] => 2011-03-25 [1] => 2011-03-26 [2] => 2011-03-27 [3] => 2011-03-28 [4] => 2011-03-29 [5] => 2011-03-30 [6] => 2011-03-31 ) [04] => Array ( [0] => 2011-04-01 [1] => 2011-04-02 [2] => 2011-04-03 [3] => 2011-04-04 ) ) )
Donc 1 niveau pour l'année, 1 niveau pour le mois et enfin un dernier niveau pour les dates elles-mêmes.

J'aimerais ne récupérer que le dernier niveau, càd TOUTES les dates (quels que soit l'année et le mois auxquels elles sont associées)
Mais là, avec ce genre de tableaux multidimensionnels, je suis une bille, alors si vous pouviez m'aider...
MERCI bcp @+

Re: récupérer variables d'un array multidimensionnel...

Posté : 25 mars 2011, 13:31
par xTG
En gros tu veux juste un array avec la liste des dates ?
$tabDates = array();
foreach($tab as $annee => $mois_jour)
{
  foreach($mois_jour as $mois => $dates)
  {
    foreach($dates as $date)
      $tabDates[] = $date;
  }
}

Re: récupérer variables d'un array multidimensionnel...

Posté : 25 mars 2011, 13:33
par moogli
Salut


Avec un double foreach + un array_merge tu devrais t'en sortir

Par exemple
<?php
$final=array();
$d=recupererDate($d1,$d2);
Foreach ($d as $annee) {
foreach($annee as $mois){
$final = array_merge($final, $mois);
}
}
?>
A tester mais ca devrait faire ce que tu veux.

@+

}

Re: récupérer variables d'un array multidimensionnel...

Posté : 25 mars 2011, 14:26
par CW76
Merci bcp à tous les deux !
J'ai opté pour la solution du double foreach + array_merge, et ça marche du tonnerre !
...Maintenant, je vais me documenter pour quand même essayer de comprendre pourquoi ça marche ;-) Je ne suis pas encore très familier avec la logique des array, surtout à plusieurs dimensions !
Merci encore @+