Bonjour, j'ai commis ce petit bout de code qui ne me retourne pas exactement ce que je veux.
Postulat:
1 - j'ai un tableau avec des clés et valeurs
2 - j'ai un fonction qui récupère : le nom de mon tableau, une série de valeurs séparées soit par virgule(,), deux points(:), pipe(|), une troisième valeur.
3 - en fontion du séparateur du second argument, j'explode pour en extraire une valeur unique
4 - ja parcours le tableau et compare ces valeurs uniques avec les valeurs du tableau
5 - si le comparatif me sort qu'il a trouvé une équivalence, alors je récupère la clé qui correspond à cette valeur.
6 - je prends la clé ainsi identifiée pour trouver une image dans un répertoire avec la fonction glob (car je me suis arranger pour que chaque image de ce répertoire puisse comporter dans son nom des caractères qui correspondent à une clé de mon fameux tableau.

SCRIPT
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
define("FAKE_DIR","chemin/images/");
$T_array = array("key1"=>"va1|va2|va3|va4|va5|||","key2"=>"vb1|vb2|vb3|vb4||||");
 
function crawler($v,$entry,$nt){
 
		$entry 	= trim($entry);
 
		if		(	ereg("\|",$entry)	)	$entry		= explode("\|",$entry);
 
		elseif	(	ereg(",",$entry)	)	$entry		= explode(",",$entry);
 
		elseif	(	ereg(":",$entry)	)	$entry		= explode(":",$entry);
 
		$max	= count($entry);
 
			foreach($v as $key=>$values){
 
				list($categorie[0],$categorie[1],$categorie[2],$categorie[3],$categorie[4],$categorie[5])=split("\|",$values);
 
				for($i=0;$i<7;$i++){
 
					if(!empty($categorie[$i])){
 
						for($j=0;$j<$max;$j++){
 
							if(is_numeric($entry[$j])) $entry[$j] = equive_CAT_TXT($entry[$j],'');
 
							if($categorie[$i]==trim($entry[$j])){
 
								$sortie	= $key; break;
 
							}
 
						}
 
					}
 
				}
 
			}
 
		$sortie		=	(isset($sortie))	?	$sortie: "divers";
 
		if(ereg('QQ',$nt))	$sortie	=	'QQ';
 
		$files		=	glob(FAKE_DIR.$sortie."*.jpg");
 
		/*-----------------------------------------------------------------
 
			POUR NE PAS AVOIR DE DOUBLONS DANS LES RESULTATS DE RECHERCHE
 
			ON INSERT LES FICHIERS TROUVES DANS UN TABLEAU
 
		*/	
 
		$trouves	=	array();
 
		$count		=	count($files);
 
		$rand		=	rand(0,$count-1);
 
		shuffle($files);
 
		return $files[$rand];
 
	}
 
//exemple d'appel
 
echo crawler($T_array,"vb4||||||||","");
Malheureusement si je poste ici ce code, c'est que cela ne fonctionne pas, car je n'ai pas en sortie ce que j'espèrais.

Quelqu'un peut-il m'aiguiller?