[PHP] Problème Array : test de valeurs negatives de suite

Problème Array : test de valeurs negatives de suite [PHP] - PHP - Programmation

Marsh Posté le 10-02-2009 à 16:13:20    

hello,
 
J'ai un Array qui contient un certain nombre de données...
 
Je voudrais faire des tests dans cet array, pour savoir combien il y a :
1. 2 valeurs negatives DE SUITE
2. 3 valeurs negatives DE SUITE
2. etc...
 
Avez-vous des idées ?
 
merci !

Reply

Marsh Posté le 10-02-2009 à 16:13:20   

Reply

Marsh Posté le 10-02-2009 à 16:17:09    

Que veut dire "de suite"? "à la suite les unes des autres"? "qui se suivent"? "bleu"?


Message édité par masklinn le 10-02-2009 à 16:17:30

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 10-02-2009 à 16:37:00    

oui, a la suite les unes des autres... qui se suivent... :)
 

Reply

Marsh Posté le 10-02-2009 à 16:52:50    

Code :
  1. $array = array(1,-2,-3,4,-6);
  2. $prev_neg = false;
  3. $suite = 0;
  4.  
  5. foreach($array as $val){
  6.    if ($val < 0){
  7.        if ($prev_neg){
  8.            $suite++;
  9.        }
  10.        $prev_neg = true;
  11.    }
  12.    else {
  13.        $prev_neg = false;
  14.    }
  15. }
  16.  
  17. // $suite contient apres le foreach le nombre de 2 valeurs negatives DE SUITE


 
tu as l'exemple pour 2 valeurs de suite, apres, à toi de le faire pour n val,
 
mais je pense que c'est optimisable, et largement optimisable ;)

Reply

Marsh Posté le 10-02-2009 à 19:08:12    

jay-jay69 a écrit :

oui, a la suite les unes des autres... qui se suivent... :)
 


Et ty veux la suite la plus longues, ou toutes les suites?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 26-04-2009 à 21:01:24    

hello !
 
j'ai un peu le mm souci, sauf que je veux compter le nb d'occurence negatives isolées, dans un array...
 
L'idée est de compter les valeurs négatives isolées : une valeur negtive, entourée de valeurs positives... :)
 
j'ai adapté la proposition comme suite :

Code :
  1. $prev_neg = true;
  2.  $nb_perte1 = 0;
  3.  foreach($arr_perf as $val){   
  4.  if ($val < 0){       
  5.  if ($prev_neg){           
  6.  $nb_perte1++;       
  7.  }       
  8.  $prev_neg = false;   
  9.  }   
  10.  else {       
  11.  $prev_neg = true;   
  12.  }
  13.  }


 
 
merci d'avance,
 
m.

Reply

Marsh Posté le 27-04-2009 à 08:07:21    

up
 

Reply

Marsh Posté le 27-04-2009 à 09:53:04    

help plz ? :)

Reply

Marsh Posté le 27-04-2009 à 09:58:02    

Personnellement j'extrairais une liste de 3-tuples (prev, current, next) de mon array e.g.
 

Code :
  1. [1,2,3,4,5,6]


qui devient

Code :
  1. [(None, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, None)]


et derrière t'as plus qu'à tester chaque 3-tuple pour savoir si il matche (>0, <0, >0).


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-04-2009 à 10:04:22    

ca peut etre une idée...
 
mais je comprends pas pkoi mon truc marche pas... bizarre bizarre !

Reply

Marsh Posté le 27-04-2009 à 10:04:22   

Reply

Marsh Posté le 28-04-2009 à 15:57:09    

up ?

Reply

Marsh Posté le 28-04-2009 à 16:18:18    

fais ske t'as dit masklin, la toi tu ne teste que les valeurs precedentes je pense :jap:

Reply

Marsh Posté le 28-04-2009 à 19:34:49    

effectivement...
mais j'ai bien peur que mes compétences ne m'aident pas trop... un p'tit coup de pouce ne serait pas de refus ! :)
 
:jap:

Reply

Marsh Posté le 29-04-2009 à 09:41:54    

un peu d'help ??

Reply

Sujets relatifs:

Leave a Replay

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