Bonjour à tous !
Voila mon soucis, j'ai un certain nombre de tableaux au sein d'un même tableau, je vous fais un résumé rapide de l'architecture :
Tableau principal [ niveau 1 ]
Clé : ID => Tableau de données [ niveau 2 ]
Clé : Incrément => $Objet [ niveau 3 ]
Voici comment je génère mon tableau :
Ce code fonctionne et me renvoi un tableau dont voici un var_dump (simplifié) :
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 public function aUsineCommune($commandes_ids){ $em = $this->getDoctrine()->getManager(); //Récupération de l'entity manager de Symfony2 $tableUsine = array(); //Instanciation de mon tableau vide foreach ($commandes_ids as $commande_id){ //Pour chaque ID que je récupère dans ma fonction $commande_detail = $em->getRepository('MON_CHEMIN_CORRECT')->find($commande_id); //Je récupère mon objet principal if($commande_detail != null){ //Si ce dernier existe $produit = $em->getRepository('MON_CHEMIN2_CORRECT')->getUsineByCommande($commande_detail ); //Je récupère un objet qui lui est lié (Sous forme de tableau) if($produit){ //S'il existe foreach ($produit as $prod){ $tableUsine[$commande_id][] = $prod->getUsine(); //Je récupère le dernier objet qui m'intéresse dans mon tableau } } } else{ // Sinon je retourne FALSE return false; } } [ ... ]
Voila mon soucis, je dois pour ce tableau renvoyer TRUE si et seulement si tout mes ID ont un objet commun entre eux, (ce qui est le cas ici), pour ce faire, les membres du chat m'on aiguillé vers la fonction array_diff, j'essaie tant bien que mal de l'utiliser, h'y arrive dans mes test en n'utilisant que trois tableau comme mon exemple, cependant, je dois pouvoir gérer les choses de manières dynamique et la, impossible je bloque complètement ... Comment faire évoluer le nombre de paramètres de "array_diff" avec mes bonnes fonctions ?array (size=3)
35738 =>
array (size=1)
0 =>
object(Proxies\__CG__\Ella\SuppliersBundle\Entity\Factory)[1355]
public '__initializer__' =>
object(Closure)[1314]
...
public '__cloner__' =>
object(Closure)[1313]
...
public '__isInitialized__' => boolean false
protected 'id' => string '122' (length=3)
[...]
35681 =>
array (size=1)
0 =>
object(Proxies\__CG__\Ella\SuppliersBundle\Entity\Factory)[1355]
public '__initializer__' =>
object(Closure)[1314]
...
public '__cloner__' =>
object(Closure)[1313]
...
public '__isInitialized__' => boolean false
protected 'id' => string '122' (length=3)
[...]
35680 =>
array (size=1)
0 =>
object(Proxies\__CG__\Ella\SuppliersBundle\Entity\Factory)[1355]
public '__initializer__' =>
object(Closure)[1314]
...
public '__cloner__' =>
object(Closure)[1313]
...
public '__isInitialized__' => boolean false
protected 'id' => string '122' (length=3)
[...]
Une idée ? Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $res = array_diff(); if(count($res) > 0) { var_dump($res); }
Partager