Classement de dates

Contenu du snippet

Voila, il s'agit d'un petit code (donc si possibler, évitez de me faire remarquer que c'est inutile ;-)) que j'ai fais suite à une demande dans le forum...

Il permet de classer des dates au format AAAA-MM-JJ contenues dans un fichier texte (1 date / ligne), selon A, M, ou J et de manière croissante ou décroissante... Cela montre comment utiliser la fonction usort

Voila, j'attends vos commentaires

Source / Exemple :


<?php
/*
-------
Params:
-------
$file = url du fichier (relatif)
$critere = A ou M ou J
$order = asc ou desc

-------
Retour:
-------
1 ou 0

  • /
function classer($file, $critere, $order) { $fichier = @file($file); // si aucune ligne $count = count($fichier); if($count == 0) return false; // on enlève les \r\n finaux for($i = 0; $i < $count; $i++) $fichier[$i] = rtrim($fichier[$i]); // paramètre critère $critere = strtolower($critere); if($critere == 'a') $GLOBALS['critere'] = 0; else if($critere == 'm') $GLOBALS['critere'] = 1; else if($critere == 'j') $GLOBALS['critere'] = 2; else return 0; $order = strtolower($order); if($order == 'asc') $GLOBALS['order'] = -1; else if($order = 'desc') $GLOBALS['order'] = 1; else return 0; if(!usort($fichier, "comparer")) return 1; $sortie = implode("\r\n", $fichier); $fp = fopen($file, 'w'); if(!$fp) return 0; if(!@fputs($fp, $sortie)) return 0; @fclose($fp); return 1; } function comparer($a, $b) { $array_a = explode('-', $a); $array_b = explode('-', $b); if($array_a[$GLOBALS['critere']] == $array_b[$GLOBALS['critere']]) return 0; return ($array_a[$GLOBALS['critere']] > $array_b[$GLOBALS['critere']]) ? - $GLOBALS['order'] : $GLOBALS['order']; } echo classer('fichier.txt', 'j', 'desc'); ?>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.