Page 1 sur 1

image aléatoire et doublons

Posté : 17 janv. 2012, 15:56
par Visiteur2012
Bonjour,
Voici mon code :

Code : Tout sélectionner

$root = "images2"; $file = glob("$root/*.jpg", GLOB_BRACE); $f01 = array_rand($file); $f02 = array_rand($file); $f03 = array_rand($file); $f04 = array_rand($file);
Ca fonctionne bien, mais j'ai parfois des doublons lors de l'affichage des images.
J'ai bien compris qu'il fallait que je fasse une boucle, mais après je ne sais pas quoi faire...

j'étais parti sur ça (c'est long et ça ne marche pas) :

Code : Tout sélectionner

$root = "images2"; $file = glob("$root/*.jpg", GLOB_BRACE); $f01 = array_rand($file); $f02 = array_rand($file); while ($file[$f02] == $file[$f01]){ unset ($file[$f02]); $f02 = array_rand($file); } $f03 = array_rand($file); while ($file[$f03] == $file[$f01]){ unset ($file[$f03]); $f03 = array_rand($file); } while ($file[$f03] == $file[$f02]){ unset ($file[$f03]); $f03 = array_rand($file); } $f04 = array_rand($file); while ($file[$f04] == $file[$f01]){ unset ($file[$f04]); $f04 = array_rand($file); } while ($file[$f04] == $file[$f02]){ unset ($file[$f04]); $f04 = array_rand($file); } while ($file[$f04] == $file[$f03]){ unset ($file[$f04]); $f04 = array_rand($file); }
Pourriez-vous m'aider, car je tourne en rond depuis plusieurs jours sur ce problème,
Merci. :-)

Re: image aléatoire et doublons

Posté : 17 janv. 2012, 16:05
par Invité
Je viens de tenter ceci :

Code : Tout sélectionner

$f01 = array_rand($file); $file1 = $file[$f01]; unset($file[$f01]);
Ca semble fonctionner, est-ce que ma solution est bonne ?

Re: image aléatoire et doublons

Posté : 17 janv. 2012, 16:31
par xTG
En effet c'est ce qu'il faut.
Soit noter les index déjà tirés au hasard pour ne pas les retirer de nouveau, soit simplement les supprimer.

Re: image aléatoire et doublons

Posté : 17 janv. 2012, 17:02
par Invité
Mes images sont ainsi nommées :

Citroen_01
...
Citroen_99

Renault_01
...
Renault_99
etc

Quel code devrais je mettre pour que file2, file3 et file4 excluent la marque présente en file1, l'algorythme me semble simple mais je n'arrive pas à trouver de solution en php...
J'avais pensé via

Code : Tout sélectionner

$marque = preg_replace('`.*/(.+)_.*`','$1',$file[$f01]);
supprimer le dossier ainsi que l'extension et le _, ce qui ne laissait plus que la marque.

Par contre après, je sèche complètement...
Merci de votre aide.

Re: image aléatoire et doublons

Posté : 17 janv. 2012, 17:45
par xTG
Tu peux utiliser strpos() pour vérifier l'existence de la marque récupérée dans une chaîne de caractères. :)