/**
  * Return the health z-values for the selected city and its average
  * @param string $cityName name of the selected city
  * @return array $cityValues it contains the z-values and a z-values average
  */
 public function healthDomain($cityName)
 {
     if (isset($cityName)) {
         if (strcmp($cityName, '') != 0) {
             $health = new HealthController();
             $sewage = new EnvironmentController();
             //Get the z-value for other water supply
             $waterSupplyOther = $health->waterSupplyOther();
             //Get the z-value for well or spring source
             $wellSpring = $health->wellSpring();
             //Get the z-value for public water supply
             $publicWaterSupply = $health->publicWaterSupply();
             //Get the z-value for drainage Ditch
             $drainageDitch = $sewage->drainageDitch();
             //Get the z-value for river, lake and sea sewerage disposal
             $riverLakeDisposal = $sewage->river_lake_sea_sewerageDisposal();
             //Get the z-value for river, lake and sea sewerage disposal
             $septicTank = $sewage->septicTank();
             $cityHealthInfo = array("Abastecimento de Água - Outros" => $waterSupplyOther[$cityName], "Abastecimento de Água - Poço ou Nascente" => $wellSpring[$cityName], "Abastecimento de Água - Rede Geral" => $publicWaterSupply[$cityName], "Esgotamento Sanitário - Vala" => $drainageDitch[$cityName], "Esgotamento Sanitário - Fossa Séptica" => $septicTank[$cityName], "Esgotamento Sanitário - Rio, lago ou mar" => $riverLakeDisposal[$cityName]);
             $cityHealthValues = CityProfileController::mergeAverage($cityHealthInfo);
             return $cityHealthValues;
         }
     }
     return 0;
 }
 /**
  * It will calculate the average of the z-values for Health
  * @return return the average of z-values by key field of each city
  */
 public function healthKeyField()
 {
     $health = new HealthController();
     $sewage = new EnvironmentController();
     //Get the z-value for other water supply
     $waterSupplyOther = $health->waterSupplyOther();
     $waterSupplyOtherInverted = array_map(array($this, "addImpact"), $waterSupplyOther);
     //Get the z-value for well or spring source
     $wellSpring = $health->wellSpring();
     $wellSpringInverted = array_map(array($this, "addImpact"), $wellSpring);
     //Get the z-value for public water supply
     $publicWaterSupply = $health->publicWaterSupply();
     //Get the z-value for drainage Ditch
     $drainageDitch = $sewage->drainageDitch();
     $drainageDitchInverted = array_map(array($this, "addImpact"), $drainageDitch);
     //Get the z-value for river, lake and sea sewerage disposal
     $riverLakeDisposal = $sewage->river_lake_sea_sewerageDisposal();
     $riverLakeDisposalInverted = array_map(array($this, "addImpact"), $riverLakeDisposal);
     //Get the z-value for river, lake and sea sewerage disposal
     $septicTank = $sewage->septicTank();
     //sum z-values
     $sumZvalues = array_map(array($this, "sumCityValues"), $waterSupplyOtherInverted, $wellSpringInverted, $publicWaterSupply, $drainageDitchInverted, $riverLakeDisposalInverted, $septicTank);
     //Divide the sum of z-values to obtain the z-values average of each city
     $zValuesAvg = array_map(array($this, "divideKeyFields"), $sumZvalues, array_fill(0, count($sumZvalues), 6));
     //combine the array keys(cities'name) with the average of z-values gotten
     $zValuesAvg = array_combine(array_keys($septicTank), array_values($zValuesAvg));
     return $zValuesAvg;
 }