Bonjour,
Voilà mon soucis,
J'ai un ensemble $pl
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$pl=array('p1','p2','p3',...,'pn'};
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
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]),
      .
      .
      .
      );
  }
}
Jusque là tout va bien...
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.
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'),
        .
        .
        .),
     ....);
le tableau
$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
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;
    }
  }
}
Est-ce que l'un de vous aurait une piste de conception?
Merci.