Bonjour à tous,
j'ai un souci dans l'affichage d'un tableau avec élimination de redondance.
Mon code est le suivant:
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);
}
}
?>
Mon code doit afficher les applications et les builds effectués pas les teams dont l'user appartient.
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