Salut à tous,

Encore junior en PHP, je bloque sur une fonction que j'ai faite et qui doit me générer un tableau Multidimensionnel pour par la suite me permettre de créer un Organigramme hiérarchique d'entreprise.

- j'arrive bien à construire mon tableau sur 3 dimensions hierarchique mais je bloque pour parcourir un 4 étage en dessous.

2eme ptit problème :

- lorsque j'essaie de mettre mon id superviseur en cle et les subalterns en valeurs, il s'arrete à la premiere valeur et ne boucle pas sur le reste.

voici ma fonction qui me genere mon array :
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
 
public function getHierarchicArray()
	{
		$subalterns = $this->mainUser->getSubalterns();
		foreach($subalterns as $idChief )
		{
			$aSubaltern = self::$_users->findFirst(array('idUser' => $idChief));
			foreach($aSubaltern->getSubalterns() as $key => $idSupervisor)
			{	
				$aSupervisor = self::$_users->findFirst(array('idUser' => $idSupervisor));
				if($aSupervisor->isSupervisor())
				{
					$subaltern = $aSupervisor->getSubalterns();
					foreach($subaltern as $key=>$idSub)
					{
						$this->hierarchicArray[$idChief][$idSupervisor] = $subaltern;						
					}
				}
				else
				{
					$this->hierarchicArray[$idChief][$idSupervisor] = count($aSupervisor->getSubalterns());		
				}
			}
		}
		return $this->hierarchicArray;
	}

et voici le retour de ma fonction :
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
 
Array
(
    [10] => Array
        (
            [100] => 0
            [108] => Array
                (
                    [0] => 339
                    [1] => 209
                )
 
            [227] => 0
            [1] => Array
                (
                    [0] => 375
                    [1] => 236
                )
 
            [365] => Array
                (
                    [0] => 42
                )
 
            [956] => 0
            [128] => 0
        )
 
    [665] => Array
        (
            [104] => 0
            [206] => 0
            [307] => 0
            [331] => 0
            [348] => 0
        )
 
 
)
je pense que je dois passer à côté de quelque chose mais là jsuis un peu coincé...
Merci de votre aide.