Combiner deux boucles en un résultat

Fermé
Actarus500 Messages postés 1 Date d'inscription mardi 1 octobre 2013 Statut Membre Dernière intervention 1 octobre 2013 - 1 oct. 2013 à 01:39
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 - 1 oct. 2013 à 17:16
Bonjour,

Je vous expose mon problème:

J'ai un dossier image dont je liste le contenu et un fichier texte contenant ligne par ligne les titres de mes images que j'aimerai utiliser comme titre pour mon title="..." dans ma balise <img>.

Pour le code qui liste le contenu du rép. dans l'ordre croissant et fonctionne très bien j'utilise ceci:


$nomRepertoire = "../img/portraits/";

$listFichier = array() ;

if(is_dir($nomRepertoire) ) {

$dossier = opendir($nomRepertoire);

while( $fichier = readdir($dossier) ) {

if($fichier != "." AND $fichier != ".." AND stristr($fichier,'.jpg')) {

$listFichier[] = $fichier;
}
}

closedir($dossier);

natsort($listFichier);


$p = 0;
foreach($listFichier as $fichier) {
if (++$p==1) continue;
echo '<a href="'.$nomRepertoire.$fichier.'" title="test"></a>';
}
}
else {
echo "repertoire inexistant";
}
?>

et pour lire mon fichier *.txt ceci:


$noms = file("docs/personnes.txt");

$total = count($noms);

for($i = 0; $i < $total; $i++)
{

echo $noms[$i];

}

Maintenant je ne sais pas comment faire pour combiner les deux résultats afin d'obtenir quelque chose du genre:


echo '<a href="'.$nomRepertoire.$fichier.'" title="'.$noms.'"></a>'

D'avance je vous remercie pour votre aide !



A voir également:

2 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
1 oct. 2013 à 11:34
Salut,

En supposant que les titres des images soit enregistrés dans le même ordre que les images de ton dossier, tu peux faire quelque chose comme ceci :


$noms = file("docs/personnes.txt");

$p = 0;
foreach($listFichier as $fichier) {
if (++$p==1) continue;
echo '<a href="'.$nomRepertoire.$fichier.'" title="' . $noms[$p - 1] . '"></a>';
}


Ici je récupère l'élément [$p - 1] de mon tableau car tu incrémentes $p au début de la boucle, à toi de vérifier si la correspondance est correcte (ton tableau de nom commence à l'index 0).
D'ailleurs je ne comprend pas pourquoi tu passes le premier tour de boucle, mais il doit y avoir une bonne raison.

Bonne journée
0
Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
Modifié par Doctor C le 1/10/2013 à 17:23
Bonjour,

Je ne peux pas le tester mais voici l'idée:

//Obtenir les noms des images
$noms = file("docs/personnes.txt");

//Obtenir les images
$nomRepertoire = "../img/portraits/";
$listFichier = array();

if(is_dir($nomRepertoire) ){

$dossier = opendir($nomRepertoire);

while (false !== ($fichier = readdir($dossier))){

if($fichier != "." AND $fichier != ".." AND stristr($fichier,'.jpg')){
$listFichier[] = $fichier;
}
}

closedir($dossier);
natsort($listFichier); //Tri de la liste

//On assume que les deux listes sont correctement triées

$p = 0;
foreach($listFichier as $fichier) {
echo '<a href="'.$nomRepertoire.$fichier.'" title="'.$noms[$p].'"></a>';
$p++;
}
}
else{
echo "repertoire inexistant";
}

En souhaitant que ça fonctionne!


Echo "Lima Mike Alfa";
0