Problems php jump

1

I have a problem when I try to concatenate the line break of my associative arrays, it does not let me and I get this error

  

Parse error: syntax error, unexpected ''
''   (T_CONSTANT_ENCAPSED_STRING), expecting ')' in   C: \ Users \ Daniel \ Desktop \ xamp \ htdocs \ possible.php on line 3

    <?php
$lluvias = array(
     'Campo 1'=> array('zona1'=>53 ," , ", 'zona2'=>23," , ", 'zona3'=>65.'<br>'),
     'Campo 2'=>array('zona4'=>60 ," , ", 'zona5'=>70," , ", 'zona6'=>80.'<br>'),
     'Campo 3'=>array('zona7'=>13 ," , ", 'zona8'=>63," , ", 'zona9'=>50.'<br>')





      );

     //$nota=$calificacion['Por parcial']['Parcial 1'];
foreach ($lluvias as $key => $value) {
    echo $key.'<br>';

    foreach ($value as $key2 ) {
        print_r($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;


?>
    
asked by DANIEL FELIPE LOPEZ VARGAS 18.08.2017 в 07:07
source

1 answer

5

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 ...

Código: Ver Demo

<?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 .

    
answered by 18.08.2017 в 07:40