Page 1 sur 1

Modifier une ou plusieurs valeurs d'un tableau associatif

Posté : 24 mai 2012, 14:31
par ho tuo
Bonjour,
j'ai un tableau $tabpl, j'aimerai verifier ses valeurs (qui changent periodiquement) et faire une modification sur celles-ci si l'ecart entre deux valeurs est plus petit que 10 je dois modifier la valeur pour qu'il y ai un minimum de 8 entre chaque valeur et je dois le faire notement ici pour p3, p4, p5 et p6 qui sont toutes dans une fourchette de 10

j'ai fait de nombreuses tentative mais je ne vois pas comment prendre le probleme si quelqu'un peut m'éclairer ça serait top. Voici ou j'en suis, ici je modifie dans des boucles mais la modification n'appairait pas hors de la boucle et je ne suis que sur une valeur, sur 3 ou plus je rame :

<?php

Code : Tout sélectionner

$tabpl=array('p1'=> 333.07 ,'p2'=>278.55 , 'p3'=>64.38, 'p4'=>63.37 , 'p5'=>59.53 ,'p6'=>55.45 ); $tabPlDuplic=&$tabpl; $ecart=4; foreach($tabpl as $pl => $lo){ foreach($tabPlDuplic as $pl2 => $lo2){ if ($pl != $pl2) { $val=$lo-$lo2; if($val >=0 && $val<=10){ $lo+=$ecart; echo"<br />\$pl : $pl $lo"; } } } } // echo"<br />---"; foreach($tabpl as $pl => $lo){ echo"<br />\$pl : $pl \$lo : $lo"; }
?>

Re: Modifier une ou plusieurs valeurs d'un tableau associati

Posté : 24 mai 2012, 14:42
par sirakawa
array_map ? array_walk?
J'ai la flemme d'aller plus loin

Re: Modifier une ou plusieurs valeurs d'un tableau associati

Posté : 24 mai 2012, 14:50
par ho tuo
OK merci je teste mais la piste est mince

Re: Modifier une ou plusieurs valeurs d'un tableau associati

Posté : 25 mai 2012, 09:07
par ho tuo
j'esperai avoir un peu plus d'aide donc question non résolue sur php France

Re: Modifier une ou plusieurs valeurs d'un tableau associati

Posté : 25 mai 2012, 11:00
par Mazarini
Personnellement, je n'ai pas répondu car je n'ai pas vu dans ta question de problème PHP mais un problème d’algorithme.
Pour ce qui est de l'algo, tu ne dis pas ce que tu avais comme problème et je n'ai pas compris ce que tu voulais faire exactement.

foreach($tabpl as $pl => $lo) $lo = 123;
Modifier $lo ne modifie pas la valeur de $tabpl[$pl], mais tu n'explique pas si ton problème est de de pas modifier le tableau ou de mal calculer les valeurs que tu affiches.

Si je comprends ce que tu as programmé, si 2 postes ont un écart suffisant 0< écart <10, tu ajoutes 4 aux 2 valeurs. Tout ca reste un mystère.
Par exemple P1 = 0 et P2 = 100
pour le couple P1,P2 => -100 d'écart et pour le couple P2,P1 => 100 d'écart.