|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||||
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Bonjour,
Voilà mon soucis, J'ai un ensemble $pl Code :
Code :
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 :
$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 :
Merci. |
||||||||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Développeur Inscription : août 2010 Messages : 587 ![]() |
wsdl ?! je vois pas de XML dans ton code...pour ma part si tu veux de l'aide dans la conception, j'aimerai bien savoir ce que tu cherches à faire en quelques lignes sans le code...
__________________
Développeur informatique contrarié... |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Je n'en suis pas encore au traitement xml.
Je souhaite extraire, d'un tableau de données qui varient dans le temps, la période durant laquelle deux éléments du tableau répondent à certains critères. À partir de cela j'aimerais créer un tableau (ou autre) qui regroupe par critère prédéfini les périodes (dateDeDébut, dateDeFin) et les éléments concernés. Le traitement xml se faisant ensuite... |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() ![]() |
Bonjour,
Mois aussi je trouve très pratique les tableaux imbriqués mais y a des limites quand même : Code :
$events['conj'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend'] -> ouch !!! Citation:
Si tu veux un coup de main, il faudrait poster je pense un exemple concret parce que dépieuter ton algo risque d'être très difficile.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
00
|
|
|
#5 | |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Citation:
Concrètement, J'ai des objets en mouvement. je récupère toutes les positions de ces objets (RA) à un instant t et ce pour une période donnée. Quand deux objets ont une différence angulaire comprise entre 2 valeurs alors, cela correspond à un type d'évènement (conj, opp...). Un évènement possède donc une date de début et de fin. Et j'arrive pas à formuler l'algo |
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() |
Citation:
Citation:
Comment tu gères ton tableau de paliers pour affecter les dates ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Je récupère les données au format texte brut que j'affecte à un tableau via un preg_match_all et un pattern un peu complexe.
la structure du tableau de données est la suivante: $data=[ 'ob1'=> date1=...,RA1=....; date2=...,RA2=....; date3=...,RA3=....; . . . 'ob2'=> date1=...,RA1=....; date2=...,RA2=....; date3=...,RA3=....; . . . ]; ensuite par exemple, à date1 je fais $data['ob1']['RA']-$data['ob2']['RA'] Si cette différence est comprise entre certaines valeurs alors cela correspond à un type d’événement. Quand elle n'est plus comprise entre ces valeur, alors l'événement est terminé (date?). |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() |
A partir de dernier post, voici la voie que j'aurais prise :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Merci pour l'élagage
![]() mais (il y a un mais) dans l'algo que vous proposer c'est que l'on détecte toutes les dates correspondant à un événement donné alors que je ne cherche que la date de début et la date de fin. Autrement dit, quand un événement pour deux objets commence à être vrai, j'enregistre la date et quand il devient faux, j'enregistre aussi la date, entre ces deux dates, l'événement est toujours vrai. C'est ça que je n'arrive pas à concevoir. |
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() |
Mon code ne sert que d'inspiration. N'ayant pas tous les éléments, je ne suis pas à même d'en faire plus au niveau du coup de main. Inspires-toi de ce bout de code, divises au maximum ton traitement en une succession de tâches simples. Nommes explicitement tes variables... et commentes
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() ![]() |
Qu'entends tu par "commence à être vrai" et "devient faux" ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Par exemple, si le delta_ra<0.5 alors l'événement 'conj' est vrai cet événement 'dure' un certain temps puis le delta_ra>0.5 alors l'événement 'conj' est faux.
Je pense qu'il faut que je mette une espèce de drapeau initialisé à faux au départ qui passe à vrai puis revient à faux. Mais je n'arrive pas à structurer ce $flag pour plusieurs événements ('conj', 'opp',...) et pour plusieurs objets (ob1, ob2,...). Vraiment merci pour votre attention. En plus je pense que c'est un pattern tout bête mais j'arrive pas à le voir... |
|
|
00
|
|
|
#13 | |
|
Expert Confirmé
![]() ![]() |
Citation:
Je t'avoue que je suis un peu perdu dans ce dédale. Si l'actualisation est différée, il faut suivre les données de l'appel initial et les conserver pour les mettre à jour lors des appels suivants. Bref, c'est pas clair du tout.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
00
|
|
|
#14 | ||
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
D'un côté, il y a un gros calculateur qui envoie un paquet de donnée en texte brut.
Je les récupère via un client wsdl et les traite. Le tableau de données contient une dizaine d'objets avec pour chacun environ 5000 lignes de données (date, RA, ...). Pour chaque date, et pour chaque couple d'objet, il faut calculer la différence de RA. si cette différence est comprise dans un certain intervalle (par exemple [0;0.5]) alors l'événement ('conj') est vrai et je stocke la date... se passe quelques itérations dans les données récupérées et la différence sort de l'intervalle alors, l'événement devient faux, alors à nouveau je stocke la date. Durant ces itérations un des objets peut vérifier les conditions pour un autre événement avec un autre objet, d'où mon idée initiale de faire deux boucles imbriquées Code :
- Chaque condition peut réapparaître plusieurs fois dans le tableau de donnée - Un objet peut remplir une condition avec un autre et en même temps satisfaire un autre condition avec un troisième objet; Bref, je suis d'accord avec le fait de simplifier, mais je n'arrive pas à le mettre sous forme d'un algorithme. |
||
|
|
00
|
|
|
#15 | |
|
Expert Confirmé
![]() ![]() |
Ok, je vois mieux.
Quand tu dis Citation:
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
|
00
|
|
|
#16 | ||
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
C'est un parcours itératif
Code :
|
||
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() ![]() |
Est ce que tu aurais un petit jeu de données à se mettre sous la dent pour tester ? 3 objets avec quelques lignes dedans ?
Quelle version de PHP doit faire tourner la fonction ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#18 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Oui c'est possible, je viens d'éditer un fichier tabulé avec 200 lignes pour 9 objets, je vous le fais parvenir comment?
|
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() ![]() |
tu peux le mettre en pièce jointe compressée avec ton message. Regardes sous la fenêtre d'écriture de ton message, tu verras des options supplémentaires dont un groupe appelé Fichiers attachés
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#20 |
|
Membre à l'essai
![]() Christophe Bresso Bricoleur Inscription : septembre 2011 Messages : 32 ![]() |
Bien j'va essayer
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com