Question sur while

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 : Question sur while

Re: Question sur while

par sirakawa » 05 déc. 2012, 21:54

Il serait beaucoup plus joli à mon sens de créer un tableau ordonné dans le while:
Initialisation du tableau avec le premier nom de fichier
tant qu'il y a des noms de fichiers
si le nom de fichier est "inférieur suivant ta fonction" au premier nom de fichier , insertion au début array_unshift
sinon si le nom de fichier est "supérieur suivant ta fonction" au premier nom de fichier , insertion à la fin array_push
sinon lui chercher une place et l'y insérer.

fin detantque

Re: Question sur while

par sam12 » 05 déc. 2012, 18:07

Avec glob (http://php.net/manual/fr/function.glob.php), si j'ai bien compris ce que tu voulais faire.

Edit: sans glob tu peux aussi faire quelque chose comme:
$tab[]= $fichier;
dans ton while

et un
arsort($tab);
foreach ($tab as $fichier_autre_ordre) echo $fichier_autre_ordre;
en fin de fichier

Re: Question sur while

par Fre3z69 » 05 déc. 2012, 17:36

Bin j'ai compris le truc, mais juste, comment je sort le tableau $a[] ?

Merci en tout cas, j'aurais appris encore un truc ^^

Cordialement

Re: Question sur while

par xTG » 05 déc. 2012, 17:23

Tu fais un parcours qui n'affiche rien mais qui stocke tout dans un array.
Puis tu transformes ton array obtenu dans la moulinette de ton choix.
Et enfin tu parcours ton array pour afficher. :)
$a = array('b', 'c', 'a');
$f = array();
$i = 0;

// parcours et stockage
while( $i < count($a) ){
  $f[] = $a[$i];
  $i++;
}

// traitement
sort($f);

// affichage => a b c
foreach($f as $val)
  echo $val;

Question sur while

par Fre3z69 » 05 déc. 2012, 17:04

Salutation

Voici ma question:

J'ai un script qui me permet de lister les sous dossier et les fichiers contenus dans ses dernières, appartenant à un dossier qu'on va nommer pour l'exemple, Contenant.

Lorsque de fait mon while pour lister les sous-dossiers et les fichiers, j'aimerais les afficher dans l’ordre inverse que celui par défaut, à savoir alphabétique et décroissant (du Z au A)

Comment feriez vous cela?, sachant que je ne fait pas le while à partir d'une requête sql.

Mon script
$p=(isset($_GET['p'])) ?$_GET['p']:'';
$cfg = 'dossier_racine/dossier_visse';
$source=$p;
	$dossier = opendir($cfg);
	echo '<div id="aside"><ul>';
	while($fichier = readdir($dossier)){
	$nom = str_replace('.php', '', $fichier);
		if(is_file($cfg.'/'.$fichier) && $fichier !='/' && $fichier !='.' && $fichier != '..'){
			echo '<li><a href="index.php?p='.$source.'&t='.$fichier.'">'.$nom.'</a></li>';
		}
	}
	echo '</ul></div>';
	closedir($dossier);
Merci beaucoup

Cordialement