[RESOLU] Recherche avancée de dates (périodes) dans un array

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] Recherche avancée de dates (périodes) dans un array

Re: Recherche avancée de dates (périodes) dans un array

par josse34 » 21 déc. 2013, 15:39

Bonjour!
Désolé du retard de réponse, décès dans la famille...

Grand merci nico63800 , cela fonctionne à merveille!!

Passez de bonnes fêtes.

Re: Recherche avancée de dates (périodes) dans un array

par nico63800 » 18 déc. 2013, 01:34

salut, tu peux faire une fonction pour çà
function somme_si($tab,$min,$max) {
	$v1 = $v2 = 0;
	foreach($tab as $t) {
		if($t[0]>=$min &&  $t[0]<=$max) {
			$v1 += $t[1];
			$v2 += $t[2];
		}
	};
	return $result = array($v1,$v2);
}
//--------------------------------------------------------------
$tab = array();
$tab[] = array(0 => 20131202, 1 => 50, 2 => 50 );
$tab[] = array(0 => 20131206, 1 => 90, 2 => 100 );
$tab[] = array(0 => 20131207, 1 => 21, 2 => 20 );
$tab[] = array(0 => 20131209, 1 => 59.1, 2 => 70 );
$tab[] = array(0 => 20131210, 1 => 9.9, 2 => 10 );
$tab[] = array(0 => 20131211, 1 => 82, 2 => 80 );
//--------------------------------------------------------------

$result = somme_si($tab,'20131205','20131208');
var_dump($result);
affiche:
array(2) { [0]=> int(111) [1]=> int(120) }

Recherche avancée de dates (périodes) dans un array

par josse34 » 18 déc. 2013, 00:57

Bonsoir.
J'ai un array de la sorte (date YYYYMMDD, valeur1, valeur2) :
Array (
[0] => Array ( [0] => 20131202 [1] => 50 [2] => 50 )
[1] => Array ( [0] => 20131206 [1] => 90 [2] => 100 )
[2] => Array ( [0] => 20131207 [1] => 21 [2] => 20 )
[3] => Array ( [0] => 20131209 [1] => 59.1 [2] => 70 )
[4] => Array ( [0] => 20131210 [1] => 9.9 [2] => 10 )
[5] => Array ( [0] => 20131211 [1] => 82 [2] => 80 ) )

Je souhaite ressortir les sommes des valeurs 1 et 2 selon une période déterminée, comme par exemple du 20131205 au 20131208, ce qui me sortirais pour la valeur1 90+21 et 100+20 en valeur2.

Comment procéder (plus simple que sort puis min et max)?

Merci et bonne soirée!!!