éliminer occurrence dans un tableau
Bonjour à tous,
j'ai un souci dans l'affichage d'un tableau avec élimination de redondance.
Mon code est le suivant:
Code:
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