boucles imbriqués

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucles imbriqués

par Moker » 10 févr. 2007, 14:28

merci à tous les deux :wink: ca fonctionne parfaitement la fonction parcours tous les niveau de sous-branches.

merci pour votre aide :)

par Truc » 10 févr. 2007, 13:56

NDHR: retiré code non-fonctionnel pour éviter toute confusion
:langue:

Ok j'ai griffonné un truc à la va vite... mais c'était pour l'idée de la récursivité :wink:

par Hubert Roksor » 10 févr. 2007, 11:09

A priori la fonction en question devrait ressembler à
function afficher_rubriques($rubriques)
{
	echo '<ul>';

	foreach ($rubriques as $rubrique)
	{
		echo '<li>', $rubrique->titre, '</li>';

		if (!empty($rubrique->enfants)
		{
			afficher_rubriques($rubrique->enfants);
		}
	}

	echo '</ul>';
}
Lors du premier appel il ne faut pas oublier de mettre ton objet "arbre" dans un tableau. Ensuite, pour chaque "rubrique" du tableau, on affiche le titre puis les enfants, si applicable.

Mon conseil : foreach est beaucoup plus pratique que for.
afficher_rubriques(array($arbre));

par Truc » 10 févr. 2007, 01:23

une fonction récursive :-k
si tu as a faire à un tableau alors il faut reexécuter la fonction.

NDHR: retiré code non-fonctionnel pour éviter toute confusion

boucles imbriqués

par Moker » 10 févr. 2007, 00:26

Bonsoir,

j'ai un souci pour parcourir un tableau dont la profondeur varie.
j'ai créé une classe qui renvoi l'arborescence de ma base sous la forme d'un tableau.

voici comment j'affiche ce dernier :
<?php
include ("./global.inc.php");

$arbre = new rubrique();
$arbre->compte_niveaux(); // Nombre de niveaux de l'arbre
$arbre->cre_arbre(); // renvoi l'arbre complet sous forme de tableau

?>

<html>

<?php

echo "<ul>";
echo "<li>".$arbre->titre; // affiche le titre de la racine
// pour chaque enfant
for($i=0;$i<$arbre->nbenfants;$i++)
{
	echo "<ul>";
	echo "<li>".$arbre->enfants[$i]->titre; // affiche le titre de l'enfant
	// et ainsi de suite
	for($j=0;$j<$arbre->enfants[$i]->nbenfants;$j++)
	{
		echo "<ul>";
		echo "<li>".$arbre->enfants[$i]->enfants[$j]->titre;
		// ....
		echo "</ul>";
	}
	
	echo "</ul>";
}

echo "</ul>";

?>

</html>
pour l'instant ma boucle imbriquée ne parcour que 3 niveaux, comment puis-je faire parcourir ce tableau n fois, ou n serait la profondeur de l'arbre ($arbre->nbniveaux) ?

merci à vous !