Bonsoir a tous et a toutes !
Je poste a nouveau sur developpez car j'ai un vrai soucis d'algo sur la creation d'un tableau a la volé (j'ai posté récement un poste similaire). Voici le code :
voici le resultat :
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 $loop = array('a', 'b'); $data[] = array('a'=>1,'b'=>5, 'data'=>'test1'); $data[] = array('a'=>1,'b'=>6, 'data'=>'test2'); $data[] = array('a'=>2,'b'=>7, 'data'=>'test3'); $data[] = array('a'=>2,'b'=>8, 'data'=>'test4'); $final=array(); $string=''; foreach($data as $array) { $tmp = ''; foreach ($loop as $key) { $tmp.='['.$array[$key].']'; } $string .= '$final'.$tmp.'=\''.$array['data'].'\';'; } eval($string); print_r($final);
Le print_r represente le resultat ! Ce que je cherche a faire c'est réaliser a l'aide de $loop et $data un autre tableau (a la volé) en utilisant $loop comme les clefs qui recupere les valeurs dans $data. Puis les valeurs de $data servent de clefs a mon tableau $final. Le soucis c'est que je peux recevoir des tableaux different a chaque fois (et a plusieurs niveau de valeur). Je m'etais beaucoup pris la tete mais le GROS soucis de l'eval c'est que sur mon code final c'est absolument impossible (trop lourd).
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 Array ( [1] => Array ( [5] => test1 [6] => test2 ) [2] => Array ( [7] => test3 [8] => test4 ) )
Donc je reviens vers vous (et dieux sait que j'ai besoin d'aide) pour un indice sur comment réaliser ce casse tete d'une autre facon (avec reference ou bien recursion). Ou tout simplement sur un indice sur comment faire un tableau (a plusieurs niveau) a la volé (sans connaitre les clefs et valeurs a l'avance !)
Voila vraiment un grand merci pour vos futurs reponses !
Partager