[Aide] trie d'un tableau par date

trie d'un tableau par date [Aide] - PHP - Programmation

Marsh Posté le 03-10-2011 à 11:03:09    

Salut tout le monde :)

 

J'espère pouvoir trouver de l'aide ici :)

 

Je possède un tableau de forme data (comme ceux qui ressortent d'un mysql_fetch_assoc), et j'aimerais appliquer un trie par date :p

 

Voici mon code :

 

$data[] = array('date' => "date", 'titre' => "titre", 'lien' => "lien" );

 

J'ai utilisé l'exemple 3 de ce LIEN pour y mettre mes informations.

 

Mais tout les trie que je trouve sont par ordre croissant ou décroissant

 

Voici mon code :

Code :
  1. // enregistrement des informations dans l'array.
  2.     for ($i = 0; $i < $limite; $i++) {
  3.         $data[] = array('madate' => $r['items'][$i]['pubDate'], 'montitre' => $r['items'][$i]['title'], 'monlien' => $r['items'][$i]['link']);
  4.     }
  5. }
  6. //affichage du tableau
  7. foreach ($data as $key => $row) {
  8.     $madate[$key] = $row['madate'];
  9.     $montitre[$key] = $row ['montitre'];
  10.     $monlien[$key] = $row['monlien'];
  11.     //trie
  12.     @array_multisort($row['madate'], SORT_DESC, SORT_STRING);
  13.     echo $madate[$key] . ' : </span><span style="width:60%;" ><a href="' . $monlien[$key] . '">' . $montitre[$key] . '</a></span><br/>';
  14. }


Je sais même pas si c'est la bonne syntaxe a adopter, de faire le trie à l'intérieur du foreach.

 

Le résultat en image non trié :

 

http://i.imgur.com/bqiXv.png

 

Merci d'avance :)


Message édité par pakos210 le 03-10-2011 à 11:06:50
Reply

Marsh Posté le 03-10-2011 à 11:03:09   

Reply

Marsh Posté le 03-10-2011 à 13:28:01    

Pour trier par date, il faudrait commencer par avoir des dates triables (année4-mois2-jour2), style 2011-10-25
 
Reformate ta date à coup de substr() ou de preg_replace()
 
L'idéal serait même de stocker directement et correctement la date en base de données, avec en php un date('c') qui est la norme internationale : 2011-10-25T15:19:21+00:00.
http://php.net/manual/en/function.date.php


Message édité par CyberDenix le 03-10-2011 à 13:31:35

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 03-10-2011 à 14:05:54    

Visiblement ma syntaxe du code était fausse.
 
Et c'est bien la forme de ma date qui était pas bonne et avec date('c'), ça marche niquel :)
 
Merci beaucoup ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed