Bonjour,
Voilà mon soucis,
J'ai un ensemble $pl
Et je récupère leurs données via wsdl dans le tableau $data
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $pl=array('p1','p2','p3',...,'pn'};
Jusque là tout va bien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 foreach($pl as $p){ $data[$p]=array(); for($i=0,$size=sizeof(donneewsdl);$i<$size;$i++){ $data[$p][$i]=array( 'date'=> floatval($matchesEqu[1][$i]), 'ra'=> to_decimal($matchesEcl[2][$i],$matchesEcl[3][$i],$matchesEcl[4][$i]), . . . ); } }
Par contre ensuite, j'ai un soucis de conception.
Je vais essayer d'être clair.
Je souhaite extraire du tableau $data un certain nombre de données en fonction de la différence de $data[$p][$i]['ra'] qu'il y a entre deux éléments du tableau $p, et créer un nouveau tableau $events.
le tableau
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $events=array( 'conj'=>array( transition=array( 'dtstart'=>$date_debut_event', 'dtend'=>$date_fin_event'), . . .), 'opp'=>array( transition=array( 'dtstart'=>$date_debut_event', 'dtend'=>$date_fin_event'), . . .), ....);
$encours_2[$pl[$k]][$pl[$h]]['ev'] est initialisé à false et,
$encours_2[$pl[$k]][$pl[$h]]['ind'] à 0
Les compteurs genre $co[$pl[$k]] sont initialisés à 0
Est-ce que l'un de vous aurait une piste de conception?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 for($k=0,$size1=sizeof($pl)-1;$k<$size1;$k++){ for ($h=$k+1,$size2=sizeof($pl);$h<$size2;$h++){ $delta_ra=($data[$pl[$k]][$i]['ra']>=$data[$pl[$h]][$i]['ra'])?$data[$pl[$k]][$i]['ra']-$data[$pl[$h]][$i]['ra']:$data[$pl[$h]][$i]['ra']-$data[$pl[$k]][$i]['ra'];//pour que $delta_ra soit toujours positif switch(true){ // Là gros doutes de conception dans tout ce qui suit !!! case($delta_ra<0.5): if($encours_2[$pl[$k]][$pl[$h]]['evenement']==true){ //Est-ce que l'evènement entre $pl[$k] et $pl[$h] est en cours ? $events['conj'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend']=$pp[$pl[$k]][$i+1]['date']; }else{ // l'evènement entre $pl[$k] et $pl[$h] est détecté mais n'a pas déjà commencé $event['conj'][$pl[$k]][$co[$pl[$k]]]=array( 'transition'=>array( 'dtstart'=>$data[$pl[$k]][$i-1]['date'], 'dtend'=>$data[$pl[$k]][$i+1]['date'] ), . . . ); $encours_2[$pl[$k]][$pl[$h]]['ev']=true;// L'évènement est détecté pour la première fois alors je stocke cette info dans cette variable et son indice dans la suivante $encours_2[$pl[$k]][$pl[$h]]['ind']=$co[$pl[$k]]; $co[$pl[$k]]++;//incrémentation de l'indice de $events['conj'][$pl[$k]] case($delta_ra>5&&$delta_ra<6): if($encours_2[$pl[$k]][$pl[$h]]['evenement']==true){ //Est-ce que l'evènement entre $pl[$k] et $pl[$h] est en cours ? $events['opp'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend']=$pp[$pl[$k]][$i+1]['date']; }else{ // l'evènement entre $pl[$k] et $pl[$h] est détecté mais n'a pas déjà commencé $event['opp'][$pl[$k]][$opp[$pl[$k]]]=array( 'transition'=>array( 'dtstart'=>$data[$pl[$k]][$i-1]['date'], 'dtend'=>$data[$pl[$k]][$i+1]['date'] ), . . . ); $encours_2[$pl[$k]][$pl[$h]]['ev']=true;// L'évènement est détecté pour la première fois alors je stocke cette info dans cette variable et son indice dans la suivante $encours_2[$pl[$k]][$pl[$h]]['ind']=$opp[$pl[$k]]; $opp[$pl[$k]]++;//incrémentation de l'indice de $events['opp'][$pl[$k]] } break; . . . default : $encours_2[$pl[$k]][$pl[$h]]['ev']=false; } } }
Merci.
Partager