Tri d'un tableau provenant d'une fonction récurcive

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 : Tri d'un tableau provenant d'une fonction récurcive

Re: Tri d'un tableau provenant d'une fonction récurcive

par xTG » 24 sept. 2010, 10:10

Il est dommage d'abandonner pour si peu.
Si jamais tu reviens sur tes dires voici un merveilleux cours sur la récursivité que tu as tant de mal à comprendre : http://recursivite.developpez.com/

Re: Tri d'un tableau provenant d'une fonction récurcive

par Likeun » 24 sept. 2010, 10:07

Merci pour vos réponses, mais je n'y arrive pas. Tampis

Re: Tri d'un tableau provenant d'une fonction récurcive

par xTG » 23 sept. 2010, 18:46

$tab est une variable locale à la fonction, elle n'est en aucun cas globale.

Petit exemple :
function test($a)
{
  echo $a;
  if( $a < 2 )
    $b = test($a + 1);
  else
    $b = 0;
  echo $a;
  echo $b;
  $a = $a + 1;
  return $a;
}
test(0);
Résultat :
0 //a
//appel de test( 0 + 1)
  1 //a
  //appel de test( 1 + 1)
    2 //a
    2 //a
    0 //b
  1 //a
  3 //b
0 //a
2 //b
1 //retour de test(0)
En gros mon exemple est peut être mal foutu mais si tu t'y penches un peu tu verras que la modification de la variable $a n'est pas prise en compte quand on dépile les fonctions. Seul le return a une incidence sur la fonction appelante.

Re: Tri d'un tableau provenant d'une fonction récurcive

par Likeun » 23 sept. 2010, 15:41

êtes-vous sur ?
Car moi ce que je comprend de ce que j'ai voulu faire c'est si le fichier n'est pas un répertoire j'insére le nom et la date de modification dans $tab sinon si c'est un répertoire, je scanne ce que contient ce répertoire et donc j'insère les fichiers qui sont compris dedans toujours dans la même array non ?
Si ce n'est pas le cas, j'aimerai bien si possible que vous me proposer un code car je ne vois pas l'intérêt d'utiliser la fonction return à ce niveau là.
Je me trompe surement car je n'arrive pas à faire le tri, mais j'aimerai comprendre s'il vous plait.

En tout cas merci de m'avoir répondu, et de m'aider

Re: Tri d'un tableau provenant d'une fonction récurcive

par xTG » 23 sept. 2010, 15:13

A la ligne 10 tu ne récupères pas le retour de ta fonction récursive, c'est donc tout à fait normal d'avoir des problèmes.
Tu ne fais aucune utilisation du return $tab.

Donc ton tableau ne pourra jamais être traité vu qu'il ne contient pas les sous-répertoires.

Re: Tri d'un tableau provenant d'une fonction récurcive

par Likeun » 23 sept. 2010, 13:12

L'idée qui est derriere tout ça, c'est que je souhaite affiche les X derniers documents modifiés qui se trouve dans des dossiers, sous dossiers, et sous sous sous dossiers. Mais la fonction récursive me bloque mon tri.
Et malheuresement, je ne peux pas me passer de ses sous dossiers... ( sinon j'aurai enlevé la fonction de récursive et le tri aurait fonctionné ).

Re: Tri d'un tableau provenant d'une fonction récurcive

par Likeun » 23 sept. 2010, 13:04

<?
function ScanRepertoire($Directory)
{


  $MyDirectory = opendir($Directory) or die('Erreur');
	while($Entry = @readdir($MyDirectory)) {
		if(is_dir($Directory.'/'.$Entry)&& $Entry != '.' && $Entry != '..') 
		{

			ScanRepertoire($Directory.'/'.$Entry);

		}
		else {
		
if ($Entry != "." && $Entry != ".." && $Entry != "index.php") 
	{
$type = str_replace('.','',strstr($Entry, '.'));
$tab[] = array($Entry, filemtime($Directory.'/'.$Entry));
if (stristr($Entry, $_POST[recherche]) !== FALSE && ($_POST[recherche] != "" ))
{
	?>

//Affichage selon mes envie...
<?php
}
		
    }
	}
}
?></table><?php
  closedir($MyDirectory);
return($tab);


}
echo count($tab);
function cmp3($a,$b) {
    if ($a[1] == $b[1])
        return 0;
    return ($a[1] < $b[1]) ? -1 : 1;
	
usort($tab, "cmp");
}

ScanRepertoire('./biblesetoutils');

?>

Re: Tri d'un tableau provenant d'une fonction récurcive

par zeus » 23 sept. 2010, 11:57

Montre nous ce que tu as fais jusque là ;)

Tri d'un tableau provenant d'une fonction récurcive

par Likeun » 23 sept. 2010, 11:53

Bonjour,
Tout est dans le titre,
J'ai une fonction récursive qui me permet de lister tous les fichiers d'un dossier et de ses sous dossiers. Tous ceci dans un tableau contenant le nom du fichier, et la date de modification du fichier.
Mais je n'arrive pas à trier ce tableau étant donné que c'est une fonction récursive ...
Avez-vous une idée?

Merci d'avance.

Likeun