Bonjour à tous,
Je collecte des mesures d'un terrain. Il y a plusieurs stations et plusieurs capteurs par station.
Je dois reviser mon code PHP et notamment l'array qui doit contenir ces valeurs avant de les afficher sur un graph.
Je vais donc faire une Requête MySQL qui va etraire les données. Puis je rassemble dans un array à plusieurs niveau.
print_r($data) m'affiche ceci
Code PHP : 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 while($row = $sql_result->fetch_assoc()) { // Put into array the dates coming from TTN server $dates[$j] = $row['ttn_m_time']; // Prepare the array before label and datasets are filled. if(!in_array($row['id_sensor'],$sensors_id)) { array_push($sensors_id,$row['id_sensor']); } $data[$row['id_station']][$row['id_sensor']]['labels'][$j] = $row['ttn_m_time']; $data[$row['id_station']][$row['id_sensor']]['datasets']['data'][$j] = 0.1; echo $j; $j++; }
On constate que dans labels l'index est soit impaire ou paire.
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
72 Array ( [1] => Array ( [1] => Array ( [labels] => Array ( [0] => 2020-11-05 00:50:06 [2] => 2020-11-05 00:50:13 [4] => 2020-11-05 00:50:26 [6] => 2020-11-05 00:50:42 [8] => 2020-11-05 00:50:58 [10] => 2020-11-05 00:51:14 [12] => 2020-11-05 00:51:30 [14] => 2020-11-05 00:51:46 ) [datasets] => Array ( [data] => Array ( [0] => 0.1 [2] => 0.1 [4] => 0.1 [6] => 0.1 [8] => 0.1 [10] => 0.1 [12] => 0.1 [14] => 0.1 ) ) ) [4] => Array ( [labels] => Array ( [1] => 2020-11-05 00:50:06 [3] => 2020-11-05 00:50:13 [5] => 2020-11-05 00:50:26 [7] => 2020-11-05 00:50:42 [9] => 2020-11-05 00:50:58 [11] => 2020-11-05 00:51:14 [13] => 2020-11-05 00:51:30 [15] => 2020-11-05 00:51:46 ) [datasets] => Array ( [data] => Array ( [1] => 0.1 [3] => 0.1 [5] => 0.1 [7] => 0.1 [9] => 0.1 [11] => 0.1 [13] => 0.1 [15] => 0.1 ) ) ) ) )
Ceci me semble normal car, il y a deux capteurs (pour le moment). Donc
n'a pas toujours la même valeur. Je pense que lorsque j'aurai trois capteur, il y aura des sauts de 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $row['id_sensor']
En soit la constreuction de la multi array et juste, sauf qu'il ne faut pas de saut de nombre. J'aimerais retravailler mon array pour qu'elle ressemble à ceci
C'est très important que les index soient les mêmes pour un capteur.
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
72 Array ( [1] => Array ( [1] => Array ( [labels] => Array ( [0] => 2020-11-05 00:50:06 [1] => 2020-11-05 00:50:13 [2] => 2020-11-05 00:50:26 [3] => 2020-11-05 00:50:42 [4] => 2020-11-05 00:50:58 [5] => 2020-11-05 00:51:14 [6] => 2020-11-05 00:51:30 [7] => 2020-11-05 00:51:46 ) [datasets] => Array ( [data] => Array ( [0] => 0.1 [1] => 0.1 [2] => 0.1 [3] => 0.1 [4] => 0.1 [5] => 0.1 [6] => 0.1 [7] => 0.1 ) ) ) [4] => Array ( [labels] => Array ( [0] => 2020-11-05 00:50:06 [1] => 2020-11-05 00:50:13 [2] => 2020-11-05 00:50:26 [3] => 2020-11-05 00:50:42 [4] => 2020-11-05 00:50:58 [5] => 2020-11-05 00:51:14 [6] => 2020-11-05 00:51:30 [7] => 2020-11-05 00:51:46 ) [datasets] => Array ( [data] => Array ( [0] => 0.1 [1] => 0.1 [2] => 0.1 [3] => 0.1 [4] => 0.1 [5] => 0.1 [6] => 0.1 [7] => 0.1 ) ) ) ) )
Par exemple, pour le capteur 4
les index de 'labels' et 'data', doivent coïncider, car l'index 0 est la date (pour 'labels') et la valeur (pour 'data')[4] => Array
Je pensais faire un foreach sur 'label' et 'data' et appliquer array_values(), mais sans succès.
Comment le feriez-vous?
Merciiii et bon week-end
Partager