Bonjour à tous,
j'ai un souci dans l'affichage d'un tableau avec élimination de redondance.
Mon code est le suivant:
Mon code doit afficher les applications et les builds effectués pas les teams dont l'user appartient.
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <?php $i=0; $j=0; $val=0; $tab = array(); $request = Request::createFromGlobals(); $em = $this->getDoctrine()->getEntityManager(); $platform = $request->query->get('platform'); $id=$request->query->get('id'); $userManager = $this->container->get('fos_user.user_manager'); $user = $userManager->findUserBy(array('id' =>$id)); if($user) { foreach($user->getTeams() as $teams) { foreach($teams->getBuilds() as $builds) { $applications = $em->getRepository('BetappliApplicationBundle:Application')->findByPlatform($platform); if(!$applications) { $xml = $serializer->serialize(array('error' => $error), 'xml'); return new Response($xml); foreach ($applications as $application) { if($application->getId()==$builds->getApplication()->getId()) { $val=1; foreach ($application->getBuilds() as $build) { if($build->getId()==$builds->getId()) { $Date=$build->getUploadDate(); $dt= new DateTimeToArrayTransformer(); $d=$dt->transform($Date); $id=$build->getId(); $dir =$build->getUploadRootDir(); if($platform=='Android'){ $fileName=$builds->id.'.apk'; } else { $fileName=$builds->id.'.ipa'; } $xml[$i]=array('application'=>array_merge(array('@id'=>$application->getId(),'name'=>$application->getapplicationName(), 'icon'=>$application->getAbsolutePath_icon()), array('build'=>(array('@id'=>$build->getId(),'name'=>$build->getbuildName(),'upload' => $build->getUploadRootDir_build($fileName),'uploaddate' => $d))))); $i++; }//fin if($build->getId()==$build->getId()) }//fin foreach ($application->getBuilds() as $build) }// fin if($application->getId()==$builds->getApplication()->getId()) }// fin foreach ($applications as $application) }//fin foreach($builds as $builds) }//fin foreach($teams as $teams) $xml=array_unique(array('application'=>$xml)); if($val==1) { $xml = $serializer->serialize($xml, 'xml'); return new Response($xml); } else { return new Response(); } }//fin if($user) else { $xml = $serializer->serialize(array('error' => $error2), 'xml'); return new Response($xml); } } ?>
Parfois le user appartient a des teams différentes qui effectuent les memes builds donc il y aura redondance dans le tableau xml.
j'ai un souci dans l'elimination de ces occurences!
Est ce que vous avez une idée SVP?
Merci
Partager