A presentation I gave at Memphis PHP Meetup June 28, 2012. Feel free to use it as you like, but please give credit to me (David Haskins). You may want to remove the Example slides - I haven't uploaded the PHP files.
2. Use Arrays to Get a Raise*
By David Haskins
*No raise guaranteed or implied. Raises are subject to availability.
Contact your supervisor for details. Offer not valid where prohibited.
3. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has:
• Booleans
• Integers
• Floating point numbers
• Strings
• Arrays
• Objects
4. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types
• Booleans (true,false)
• Integers
• Floating point numbers
• Strings
• Arrays
• Objects
5. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types
• Booleans (true,false)
• Integers (…-2,-1,0,1,2,3,4,5…)
• Floating point numbers
• Strings
• Arrays
• Objects
6. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types
• Booleans (true,false)
• Integers (…-2,-1,0,1,2,3,4,5…)
• Floating point numbers (3.14159,2.71828…)
• Strings
• Arrays
• Objects
7. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types & Composite data
types
• Booleans (true,false)
• Integers (…-2,-1,0,1,2,3,4,5…)
• Floating point numbers (3.14159,2.71828…)
• Strings ('Memphis', 'Meetup Group'…)
• Arrays
• Objects
8. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types & Composite data
types
• Booleans (true,false)
• Integers (…-2,-1,0,1,2,3,4,5…)
• Floating point numbers (3.14159,2.71828…)
• Strings ('Memphis', 'Meetup Group'…)
• Arrays ($_SERVER, $user = new array()…)
• Objects
9. Data types
A data type is a set of data (information) with
certain characteristics.
PHP has: Primitive data types & Composite data
types
• Booleans (true,false)
• Integers (…-2,-1,0,1,2,3,4,5…)
• Floating point numbers (3.14159,2.71828…)
• Strings ('Memphis', 'Meetup Group'…)
• Arrays ($_SERVER, $user = new array()…)
• Objects (user, animal, bird…)
10. What is an array?
A data structure in which similar elements of
data are arranged in a table.
- http://www.merriam-webster.com/dictionary/array
An ordered collections of items, called
elements.
- Zend PHP 5 Certification Study Guide
An ordered map. A map is a type that
associates values to keys.
- http://us2.php.net/manual/en/languages.types.array.php
11. How do you create an array?
//create an empty array
$cool_guys = new array();
12. How do you create an array?
//create a populated array
$cool_guys = array(
'Alan Turing',
'Donald Knuth',
'Rasmus Lerdorf',
'John Von Neumann');
13. How do you create an array?
//echo Donald Knuth
$cool_guys = array(
'Alan Turing',
'Donald Knuth',
'Rasmus Lerdorf',
'John Von Neumann');
echo $cool_guys[1];
14. How do you create an array?
//create a populated associative array
$cool_guys = array(
'computers' => 'Alan Turing',
'algorithms' => 'Donald Knuth',
'PHP' => 'Rasmus Lerdorf',
'architecture' => 'John Von
Neumann');
15. How do you create an array?
//echo Donald Knuth
$cool_guys = array(
'computers' => 'Alan Turing',
'algorithms' => 'Donald Knuth',
'PHP' => 'Rasmus Lerdorf',
'architecture' => 'John Von
Neumann');
echo $cool_guys['algorithms'];
16. Add an element to an array?
An enumerative array:
$cool_guys[] = 'David Haskins';
-or-
array_push($cool_guys,'David Haskins');
17. Add an element to an array?
An enumerative array:
$cool_guys[] = 'Jeremy Kendall';
-or-
array_push($cool_guys,'Jeremy Kendall');
(array_push() is slower b/c it's a function call;
however you can add many elements at once
separated by commas)
18. Add an element to an array?
An associative array:
$cool_guys['Memphis'] = 'David Haskins';
19. Update an existing element
Replace Knuth with Dijkstra
Enumerative array:
$cool_guys[1] = 'Edsger Dijkstra';
Associative array:
$cool_guys['algorithms'] = 'Edsger Dijkstra';
20. Remove an existing element
Enumerative array:
unset($cool_guys[1]);
Associative array:
unset($cool_guys['algorithms']);
21. Check if an element exists
Enumerative array:
isset($cool_guys[1]);
Associative array:
isset($cool_guys['algorithms']);
22. View the contents of an array
//let's look at the enumerative array
var_dump($cool_guys);
array(4) {
[0]=>
string(11) 'Alan Turing'
[1]=>
string(12) 'Donald Knuth'
[2]=>
string(14) 'Rasmus Lerdorf'
[3]=>
string(16) 'John Von Neumann'
}
23. View the contents of an array
//let's look at the enumerative array
print_r($cool_guys);
Array
(
[0] => Alan Turing
[1] => Donald Knuth
[2] => Rasmus Lerdorf
[3] => John Von Neumann
)
31. Iterate over elements in an array
for( $i = 0; $i< count($cool_guys); $i++){
//each cool guy
echo $cool_guys[$i] . ',';
}
32. Iterate over elements in an array
for( $i = 0; $i< count($cool_guys); $i++){
//each cool guy
echo $cool_guys[$i] . ',';
}
Outputs:
Alan Turing, Donald Knuth, Rasmus Lerdorf,
John Von Neumann,
33. Iterate over elements in an array
for( $i = 0; $i< count($cool_guys); $i++){
//each cool guy
echo $cool_guys[$i] . ',';
}
Outputs:
Alan Turing, Donald Knuth, Rasmus Lerdorf,
John Von Neumann,
Note: you could store the output as a string and
rtrim the trailing comma.
34. Let us assume the following associative array:
$cool_guys = array(
'computers' => 'Alan Turing',
'algorithms' => 'Donald Knuth',
'PHP' => 'Rasmus Lerdorf',
'architectures' => 'John Von Neumann');
35. Iterate over elements in an array
foreach($cool_guys as $expertise =>
$name){
//each cool guy
echo '$name is good at $expertise. n ';
}
36. Iterate over elements in an array
foreach($good_guys as $expertise => $name){
//each cool guy
echo '$name is good at $expertise. n ';
}
Alan Turing is good at computers.
Donald Knuth is good at algorithms.
Rasmus Lerdorf is good at PHP.
John Von Neumann is good at architectures.
37. for() vs foreach()
for() and foreach() are not the same thing!
foreach() operates on a copy of the array,
not the array itself. If you modify a value in
the array, foreach() will not reflect this
change in the iteration.
38. Example
Create a survey in PHP.
Just a form that submits information that is
stored in a database.
Ignore sanitization for simplicity.
39. Example 1
Create two files:
• an HTML form
• a PHP file to handle form submission
(see example 1)
40. Example 2
Add more fields…and there may be even
more fields to be added at the last minute.
41. Example 2
Add more fields…and there may be even
more fields to be added at the last minute.
There's one problem…
42. Example 2
Add more fields…and there may be even
more fields to be added at the last minute.
There's one problem…
Doing repetitive stuff is boring.
43. Example 2
Let's use arrays to make life easier.
'The three chief virtues of a programmer are:
laziness, impatience and hubris'
- Larry Wall (creator of Perl)
46. Example 3
Optional, but I like to do it on tiny projects
like this.
Put all code in one file.
(check if submitted, and submit to self)
47. Other things to do with arrays in
PHP
Can't remember what order parameters go
in?
my_function($user_id,$firm_id,$idx_id);
48. Other neat things to do with arrays
in PHP
Can't remember what order parameters go
in?
my_function($user_id,$firm_id,$idx_id);
Pass an array:
my_function($details);
49. Other neat things to do with arrays
in PHP
Can't remember what order parameters go
in?
my_function($user_id,$firm_id,$idx_id);
Pass an array:
my_function($details);
…and use type hinting to only accept an
array:
my_function(Array $details);
50. Not sure what pre-defined Server
variables are available?
(IIS 7, I'm looking at you)
print_r($_SERVER);
51. Not sure what pre-defined Server
variables are available?
(IIS 7, I'm looking at you)
print_r($_SERVER);
also handy if you can't remember:
$_SERVER['PHP_SELF'] vs
$_SERVER['SCRIPT_NAME'] vs
$_SERVER['SCRIPT_FILENAME'] vs
$_SERVER['URL']…etc.
52. Treat a string as an enumerative
array of chars
$my_str = 'PHP Memphis rocks!';
for($i=0; $i<strlen($my_str); $i++){
echo $my_str[$i] . '-';
}
53. Treat a string as an enumerative
array of chars
$my_str = 'PHP Memphis rocks!';
for($i=0; $i<strlen($my_str); $i++){
echo $my_str[$i] . '-';
}
P-H-P- -M-e-m-p-h-i-s- -r-o-c-k-s-!-
58. Use arrays
Hopefully, you will be able to use arrays to
manage data in your applications more
efficiently.
Look into all of the array functions on
PHP.net. There are lots of array sorting,
merging, summation, etc. functions
available.
59. Other info on Arrays in PHP
• http://oreilly.com/catalog/progphp/chapter/
ch05.html (free chapter!)
• Zend PHP 5 Certification Study Guide