Modifier une ou plusieurs valeurs d'un tableau associatif

ho tuo
Invité n'ayant pas de compte PHPfrance

24 mai 2012, 14:31

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"; }
?>

Mammouth du PHP | 2278 Messages

24 mai 2012, 14:42

array_map ? array_walk?
J'ai la flemme d'aller plus loin
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ho tuo
Invité n'ayant pas de compte PHPfrance

24 mai 2012, 14:50

OK merci je teste mais la piste est mince

ho tuo
Invité n'ayant pas de compte PHPfrance

25 mai 2012, 09:07

j'esperai avoir un peu plus d'aide donc question non résolue sur php France

ViPHP
ViPHP | 2577 Messages

25 mai 2012, 11:00

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.