Boucle Foreach et manipulation d'array
Bonsoir,
je viens vers vous car me voilà bloqué avec une boucle foreach... je ne sais pas comment la manipuler correctement.
Voila ma problématique :
Je manipule des catégories (d'article) classées hiérarchiquement.
Dans un array sont stockées les ID de catégories (d'article) auxquel sont associé leur parent.
Pour faire simple, petit schéma :
Code:
1 2 3 4 5 6 7
|
1 --> Catégorie maitre (pas de parent)
=2 --> Sous catégorie (à pour parent 1)
=3 --> Sous catégorie
==5 --> Sous-sous catégorie (à pour parent 3)
=4 --> Sous catégorie
==6 --> Sous-sous catégorie (à pour parent 4) |
C'est stocké dans mon array comme ceci :
[id] => parent
Code:
1 2
|
$arrayInit = Array ( [1] => 0 [2] => 1 [3] => 1 [4] => 1[5] => 3 [6] => 4); |
Je souhaite connaitre les tous enfants d'un ID donné ($var) selon une profondeur donnée ($profondeur) et que cela s'adapte a n'importe quel profondeur de hiérarchie.
Si $var = 1 et profondeur='all' alors mon résultat -> array(2,3,4,5,6)
Si $var = 1 et profondeur=1 alors mon résultat -> array(2,3,4)
Si $var = 3 et profondeur=1 alors mon résultat -> array(5)
Je sais que je dois utiliser plusieurs array "temporaire" mais ne sait pas ou les placer.
Voilà mes avancées.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
$arrayTemp = array();
for($i=0;$i < $profondeur;$i++) {
foreach($arrayInit as $row => $valeur)
{
if($i == 0) $valeurTest = $var;
else $valeurTest = $reschild[$i-1];
if ($valeur == $valeurTest)
{
array_push($arrayFinal,$row);
array_push($arrayTemp,$row);
}
}
}
print_r($arrayFinal); |
Je me perd dans toutes ces boucles et n'arrive plus a savoir comment faire.
D'avance je vous remercie de votre aide.