traitement array associatif

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 : traitement array associatif

par Jules Petibidon » 07 févr. 2008, 15:58

Hello,

Il y a deux problèmes à ton affaire :

1) l'idée est mauvaise à la base. les dates au format Y-m-d, PHP sait les traiter, il peut faire plein de trucs amusants avec. Les dates au format Fr, il peut rien en faire par contre. Donc il est plus intéressant de les garder tant que possible dans le format d'origine, et les transformer en Fr que lorsque tu les affiches.

2) la méthode de transformation des dates est mauvaise. Comme dit dans le §1, PHP sait traiter ce format de date. Tu peux le transformer facilement pour l'affichage de cette maniere :
$date_transformée = date( 'd/m/Y' , strtotime( $date_d_origine ) );
Donc on oublie l'utilisation d'array_map, qui est fondé sur une mauvaise idée.

Ceci était bien sûr un avis qui n'engageait que moi :) Mais j'espère qu'il te rendra un quelconque service.

par Invité » 07 févr. 2008, 15:51

non, le tableau ne comprend pas que des dates

par iclo » 07 févr. 2008, 15:22

Je ne comprends pas: tu veux faire traiter tout ton tableau user par cette fonction, mais ce tableau ne ocntient pas que des dates, non ?

par Invité » 07 févr. 2008, 15:19

haouais, c le blizzard là...une autre question: ma question est elle bête ou impossible à solutionner?

traitement array associatif

par Invité » 06 févr. 2008, 17:21

Bonjour à tous,

J'ai un tableau associatif $user qui ressemble à ceci:
array(50) {
  ["idfiche"]=>
  string(1) "1"
.....
  ["dateinsc"]=>
  string(10) "2008-02-06"
  ["dateschoisies"]=>
  string(31) "14 février 2008  au 13 Mai 2008"
....
}
Comme vous pouvez le voir certaines valeurs du tableau contiennent des dates au format "aaaa-jj-mm". Je voudrais changer le format de ces dates avec la fonction suivante (pour obtenir des dates françaises)
function do_date($date)
{
    /* Format de date dans la base : 2005-02-28 00:00:00 */
    if(!empty($date))
    {
        $masque = "#(\d{4})-(\d{2})-(\d{2})#";
        $rempl  = "$3/$2/$1";
        $date_fr = preg_replace($masque, $rempl, $date);
    }
    else
    {
        $date_fr = "";
    }
    return $date_fr;
}
La fonction do_date(param) marche très bien. Pour l'appliquer à toutes les valeurs de mon tableau $user, j'ai pensé à array_map(), comme ceci:
$user = array_map("do_date", $user);
Mon problème: ma fonction do_date doit prendre la date à traiter en paramètre. Est-il possible de passer des paramètres à 1 fonction en utilisant array_map?
éventuellement, y a til une meilleure solution pour atteindre mon but?

Merci pour vos réponses.