[RESOLU] Fonction avec tableau de données triées par date

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 : [RESOLU] Fonction avec tableau de données triées par date

Re: Fonction avec tableau de données triées par date

par CoeurBis » 15 déc. 2015, 17:23

Magnifique !

Merci, c'est exactement ce qu'il me faut.

=D>

Re: Fonction avec tableau de données triées par date

par ynx » 15 déc. 2015, 17:14

Salut,

Une solution possible en supposant que ton tableau initial $liste soit déjà trié :
$liste = array(
		array(1, 'bonjour', '2015-12-14'),
		array(2, 'coucou', '2015-12-14'),
		array(3, 'bonjour', '2015-12-12'),
		array(4, 'bonjour', '2015-12-10'),
		array(5, 'super', '2015-12-12')
	);
	
function trierParDate($liste, $date) {
	$listeTriee = array();
	
	foreach($liste as $element) {
		if ($date == '0') {
			$listeTriee[$element[2]] = $element;
		} else if ($element[2] == $date) {
			$listeTriee[] = $element;
		}
	}
	
	return array_values($listeTriee);
}

// test :
echo '<pre>';

$listeTriee1 = trierParDate($liste, '2015-12-14');
var_dump($listeTriee1);

$listeTriee2 = trierParDate($liste, '2015-12-12');
var_dump($listeTriee2);

$listeTriee3 = trierParDate($liste, '0');
var_dump($listeTriee3);

echo '</pre>';
Le principe est assez simple : si le paramètre $date est égal à '0', on ajoute dans un nouveau tableau tous les éléments du tableau initial en utilisant la date de chaque élément comme clé du second tableau. En utilisant la date comme clé du second tableau, tous les éléments ayant la même date vont donc s'écraser et au final seul le dernier élément de chaque date sera conservé dans le second tableau (en supposant que le tableau initial est déjà trié dans l'ordre souhaité). Si le paramètre n'est pas égal à 0, on ajoute les éléments dans le second tableau en comparant simplement la date.

Bonne journée

Fonction avec tableau de données triées par date

par CoeurBis » 15 déc. 2015, 16:30

Salut,

Je fais suite à mon problème sur ce topic : php-avance/choisir-derniere-date-sql-t275072.html

J'ai réussi plus ou moins ce que je voulais faire mais je suis de nouveau bloqué pour le faire APRÈS une requête et donc en PHP.

Dans $liste, j'ai un Array avec :

1, bonjour, 2015-12-14
2, coucou, 2015-12-14
3, bonjour, 2015-12-12
4, bonjour, 2015-12-10
5, super, 2015-12-12

Mais, je souhaite, via une fonction, faire ceci :

trierParDate($liste, '2015-12-14'); // me donne un array avec "1, bonjour, 2015-12-14" et "2, coucou, 2015-12-14".
trierParDate($liste, '2015-12-12'); // me donne un array avec "3, bonjour, 2015-12-12" et "5, super, 2015-12-12".
trierParDate($liste, '0'); // me donne un array avec les derniers de chaque date "1, bonjour, 2015-12-14", "2, coucou, 2015-12-14" et "5, super, 2015-12-12".

Vous comprenez ma demande ?

Merci