Defining your own functions

Change the temperature example to use functions


<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
PHP two-dimensional arrays
Author: Elena Machkasova elenam@morris.umn.edu
Last modified: 3/3/08
-->
<?php
$data = array(array(2.8, 6.7, 4.5, 3.7, 5.0),
	      array(6.3, 7.8, 5.6, 8.0, 6.7, 7.9),
	      array(3.4, 5.2, 3.9, 4.6, 3.5));
$temperature = array("2/28/06" => array(24, 32, 41, 27),
		"3/1/06" => array(25, 30, 37, 19),
		"3/2/06" => array(15, 22, 26, 18));
?>
<html  xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
Two-dimensional arrays
</title>
<?php 
// defining php functions

// the function prints a string as an h3 header
function pr_header($string) {
	print "<h3>$string</h3>\n";	
}

// the function computes and returns the average of 
// elements of a one-dimensional array
function average($array) {
	$sum = 0;
	foreach ($array as $element) {
		$sum = $sum + $element;	
	}
	$average = $sum/count($array);
	return $average;
}

// write a function that converts temperature from Fahrenheit to Celsius
// here is the formula: Tc = (Tf-32)*(5/9)

?>
</head>
<body>
<?php
pr_header("data"); 
print_r($data);
pr_header("temperature:");
print_r($temperature);

pr_header("Accessing an element in a 2D array:"); 
print $data[2][3]."<br/>\n";
print $temperature["3/1/06"][1]."<br/>\n";

// we use nested for loops here, we could use foreach instead (see below)
pr_header("Finding the average of each row of data");
for ($i = 0; $i < count($data); $i++) {
	$average = average($data[$i]);
	print "The average for row $i is $average<br/>\n";
}

pr_header("Finding the average of each row of temperature");
foreach ($temperature as $day => $temps) {
	$average = average($temps);
	// need brackets around $average, otherwise it's read as $averageF
	print "The average temperature for $day is {$average}F<br/>\n";
}

?>
</body>
</html>

http://rynite.morris.umn.edu/~elenam/1101_spring08/functions/twod_array_functions.php

UMM CSci 1101

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.