Your array is somewhat disastrous , with all due respect.
I recommend that you read what the Handbook says about arrays , and for your specific case , the Example 14 .
An array must have at least a pair of clave
= > valor
associated. This condition is not met in your case. There may also be other arrays within the main array.
The problem is that, apparently, you try to create an array as if it were a echo
.
Field 1 '= > array ('zone1' = > 53, ",", 'zone2' = > 23, ",", 'zone3' = > 65. '
')
When it comes to arrays, it does not make sense to add html elements to the array, such as <br>
elements, or to add commas in quotes ","
? ... since that you can put it when you read the array, as you do well in your for loops and so on.
We will build an array less disaster :) and then we will read it.
I'm just going to modify the array part, the rest of the code has no changes and you'll see that it works.
What I do is the following, from each key of the array I remove the elements that are left over. For example, this:
'Campo 1'=> array('zona1'=>53 ," , ", 'zona2'=>23," , ", 'zona3'=>65.'<br>'),
will become this:
'Campo 1'=> array('zona1'=>53 , 'zona2'=>23, 'zona3'=>65),
Which means that the array $lluvias
has an element whose key is called Campo1
and that element in turn has another array with three keys: zona1
with a value of 53, zona2
with value of 23 and zona3
with a value of 65.
The same goes for the other elements ...
<?php
$lluvias = array (
"Campo 1" => array (
"zona1" => 53,
"zona2" => 23,
"zona3" => 65
),
"Campo 2" => array (
"zona4" => 60,
"zona5" => 70,
"zona6" => 80
),
"Campo 3" => array (
"zona7" => 13,
"zona8" => 63,
"zona9" => 50
)
);
foreach ($lluvias as $key => $value) {
echo $key.'<br>';
foreach ($value as $key2 ) {
echo($key2).'<br>';
}
}
$promediocamp1=array_sum($lluvias['Campo 1'])/count($lluvias['Campo 1']['zona1'])/3; //promedio de lluvias campo 1
echo "El promedio de lluvias por zona en el campo 1 es de :".$promediocamp1.'<br>';
$promediocamp2=array_sum($lluvias['Campo 2'])/count($lluvias['Campo 2']['zona4'])/3; //promedio de lluvias campo 2
echo "El promedio de lluvias por zona en el campo 2 es de :".$promediocamp2.'<br>';
$promediocamp3=array_sum($lluvias['Campo 3'])/count($lluvias['Campo 3']['zona7'])/3; //promedio de lluvias campo 3
echo "El promedio de lluvias por zona en el campo 3 es de :".$promediocamp3.'<br>';
$promediogene=($promediocamp1+$promediocamp2+$promediocamp3)/3; //promedio general de la matriz
echo "El promedio de todos los datos almacenados en la matriz es de : ".$promediogene;
?>
Resultado
:
Campo 1<br>53<br>23<br>65<br>Campo 2<br>60<br>70<br>80<br>Campo 3<br>13<br>63<br>50<br>El promedio de lluvias por zona en el campo 1 es de :47<br>El promedio de lluvias por zona en el campo 2 es de :70<br>El promedio de lluvias por zona en el campo 3 es de :42<br>El promedio de todos los datos almacenados en la matriz es de : 53
If you want to place a <br>
after the name of each key: Campo1, Campo2, Campo n
you can do it simply by placing a <br>
before the name of the key in the for loop:
foreach ($lluvias as $key => $value) {
echo '<br>'.$key.'<br>';
...
<br>Campo 1<br>53<br>23<br>65<br><br>Campo 2<br>60<br>70<br>80<br><br>Campo 3<br>13<br>63<br>50<br>El promedio de lluvias por zona en el campo 1 es de :47<br>El promedio de lluvias por zona en el campo 2 es de :70<br>El promedio de lluvias por zona en el campo 3 es de :42<br>El promedio de todos los datos almacenados en la matriz es de : 53
Or you can surround it by lines using <hr>
:
foreach ($lluvias as $key => $value) {
echo '<hr>'.$key.'<hr>';
...
<hr>Campo 1<hr>53<br>23<br>65<br><hr>Campo 2<hr>60<br>70<br>80<br><hr>Campo 3<hr>13<br>63<br>50<br>El promedio de lluvias por zona en el campo 1 es de :47<br>El promedio de lluvias por zona en el campo 2 es de :70<br>El promedio de lluvias por zona en el campo 3 es de :42<br>El promedio de todos los datos almacenados en la matriz es de : 53
Or ... even more flexible, you can apply CSS rules:
foreach ($lluvias as $key => $value) {
echo '<div class="espacio">'.$key.'</div>';
...
.espacio {
color: red;
padding-top: 1em;
padding-bottom: 0.5em;
}
<div class="espacio">Campo 1</div>53<br>23<br>65<br>
<div class="espacio">Campo 2</div>60<br>70<br>80<br>
<div class="espacio">Campo 3</div>13<br>63<br>50<br>El promedio de lluvias por zona en el campo 1 es de :47<br>El promedio de lluvias por zona en el campo 2 es de :70<br>El promedio de lluvias por zona en el campo 3 es de :42<br>El promedio de todos los datos almacenados
en la matriz es de : 53
In conclusion
The cleaner your array is, the better. The rest is done dynamically, when reading the array .