Php tableau

Résolu
thomas.r Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -  
thomas.r Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essaie actuellement à partir d'une fonction d'afficher des images en random que j'ai mis préalablement dans un tableau mais cela marche une fois sur cinq. En effet l'affichage marche aléatoirement et j'ai quelque fois une erreur d'offset c'est à dire que mon random tombe sur rien.

Je m'explique :

dans une page j'appelle une fonction appel_images($n) avec $n=nombre d'images
function appel_images($n){
$all_images=array();
$temp=array();
$all_images=call_all_images(); // cette fonction récupère toutes les images de la bdd
for ($i=0;$i<=$x-1;$i++){
$nbre_images=sizeof($all_images);
$index=rand(0,($nbre_images-1));
$temp[$i]=$all_images[$index];
unset ($all_images[$index]);
}

j'ai retourné ma fonction dans tous les sens et je ne comprends pas pourquoi une fois sur cinq j'ai une erreur d'offset sur la ligne
$temp[$i]=$all_images[$index];

Pouvez-vous m'aider ?

Merci
A voir également:

5 réponses

choubaka Messages postés 39442 Date d'inscription   Statut Modérateur Dernière intervention   2 105
 
salut

tu ne peux pas modifier ton code de manière à voir sur l'écran la valeur de $index ??

ça te permettrait de comprendre le pourquoi
0
gaerebut Messages postés 1017 Date d'inscription   Statut Membre Dernière intervention   171
 
C'est quoi $x ?
Tu le défini pas !

Faudrai pas mettre plus $n ?

A+

Gaerebut
0
thomas.r Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   2
 
non non c'est bien un $x dans mon code :D c'est parce qu'en essayer d'expliquer je pensais qu'un $n expliquerai mieux
function appel_images($x){
$all_images=array();
$temp=array();
$all_images=call_all_images(); // cette fonction récupère toutes les images de la bdd
for ($i=0;$i<=$x-1;$i++){
$nbre_images=sizeof($all_images);
$index=rand(0,($nbre_images-1));
$temp[$i]=$all_images[$index];
unset ($all_images[$index]);
}
}

quand je fais un echo $index , apparement ca marche pas quand le random renvoie le même chiffre du genre ca bug quand l'affichage de $index donne le même chiffre. Et je comprends pas pourquoi car je refait à chaque itération un sizeof du tableau il devrait donc décaler chaque élément du tableau car je supprime celui utilisé précédement ???
0
thomas.r Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,

J'ai lu sur certain post de forum que le problème pourrait venir de ma boucle. apparement unset supprime l'élément et non l'index qui va ac et on conseille d'utiliser un foreach mais je c pas comment puisque j'ai besoin de mon $x

Qu'en pensez vous ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thomas.r Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   2
 
bonjour,

C bon j'ai réussi à trouver une solution à mon problème en utilisant array_splice($tableau,$index,1)

merci pour votre participation
0