IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Tri sur la date ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut Tri sur la date ?
    Bonsoir,

    Je sais qu'il s'agit encore d'une question sur le tri d'un tableau selon un colonne en particulier mais je m'y perds un peu...

    J'ai le code suivant : d'abord je lis 2 flux rss que je mets bout à bout dans un tableau. Et ensuite j'affiche le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $i = 0;
    $xml = simplexml_load_file('flux1.xml') ;
    foreach($xml->channel->item as $item) 
    {
    $tableau[$i][1] = utf8_decode($item->title);
    $tableau[$i][0] = utf8_decode($item->pubDate);
    $tableau[$i][2] = utf8_decode($item->description);
    $tableau[$i][3] = "source n°1";
    $tableau[$i][4] = utf8_decode($item->link);
    $i++;
    }
     
    $xml = simplexml_load_file('flux2.xml') ;
    foreach($xml->channel->item as $item)
    {
    $tableau[$i][1] = utf8_decode($item->title);
    $tableau[$i][0] = utf8_decode($item->pubDate);
    $tableau[$i][2] = utf8_decode($item->description);
    $tableau[$i][4] = utf8_decode($item->link);
    $tableau[$i][3] = "source n°2";
    $i++;
     
    }
     
    /* affichage du tableau */
     
    for($k=0;$k<$i;$k++)
    	{
    	echo "<h3><a href='".$tableau[$k][4]."'>".$tableau[$k][1]."</a></h3>";
    	$daterss = utf8_decode($tableau[$k][0]);
    	echo '<p>Le '.date("d F Y",strtotime($daterss)).', '; 
    	echo "par ".$tableau[$k][3]."</p>";
    	echo "<p>".$tableau[$k][2]."</p>";
    	echo "<p class='description'></p>";
    	}
    OK... le code n'est pas génial mais il a le mérite de marcher.
    Cependant, il affiche les infos du flux 1 puis les infos du flux 2, logique : c'est l'ordre du tableau.

    J'aimerai savoir comment je peux m'y prendre pour faire le tri par date, et ainsi afficher les éléments des flux par ordre chronologique.

    Merci et à bientôt,
    En espérant que mon explication ait été claire.

    A bientôt,
    Alexis

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Avec array_multisort() (exemple #2 http://php.net/manual/fr/function.array-multisort.php)

    au passage, plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    foreach($xml->channel->item as $item) 
    {
    $tableau[] = array(
                    utf8_decode($item->pubDate),
                    utf8_decode($item->title),
                    utf8_decode($item->description),
                    "source n°1",
                    utf8_decode($item->link)
                 );
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut
    Merci pour cette indication mais c'est pas là que j'avais commencé.

    Si j'ai posté ici, c'est que je n'ai pas compris comment mettre array_multisort en application. Comment puis-je faire comprendre au script que je veux faire le tri sur la "colonne0" ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je t'ai indiqué le mauvais exemple.
    C'est le #3 qui te concerne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Par défaut
    J'ai ajouté ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach ($tableau as $key => $row) {
        $col0[$key] = $row['0'];
        $col1[$key] = $row['1'];
    	$col2[$key] = $row['2'];
    	$col3[$key] = $row['3'];
    	$col4[$key] = $row['4'];
    }
     
    array_multisort($col0, SORT_DESC, $tableau);
    Le tableau ne s'affiche plus dans le même ordre mais je ne vois pas du tout quel tri a été fait

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $row[0] et non $row['0']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [BATCH] Tri sur les dates de fichiers
    Par tonf dans le forum Windows
    Réponses: 1
    Dernier message: 26/04/2007, 17h25
  2. [MySQL] Tri sur les dates
    Par urbalk dans le forum PHP & Base de données
    Réponses: 33
    Dernier message: 21/03/2007, 23h01
  3. Problème de tri sur les dates par année puis mois
    Par rob2-9 dans le forum Access
    Réponses: 26
    Dernier message: 11/08/2006, 12h04
  4. [Dates] tri sur les dates
    Par udta5371 dans le forum Langage
    Réponses: 5
    Dernier message: 13/07/2006, 22h49
  5. Tri sur les dates
    Par ShadoX dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/06/2006, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo