PHP Array
PHP Arrays
I. An array stores multiple values in one single
variable
II. Better than Python Dictionaries
III. Better than Java Hash Maps
IV. PHP Arrays have all the benefits of Python
Dictionaries but they can also maintain the order
of the items in the array
Associative Arrays
• Like Python Dictionaries - but more
powerful
• Can be key => value or simply indexed
by numbers
Integer Indices
<?php
$stuff = array("Hi", "There");
echo $stuff[1], "\n";
?>
There
Key / Value
<?php
$stuff = array("name" => "Chuck",
"course" => "PHPIntro");
echo $stuff["course"], "\n";
?>
PHPIntro
Dumping an Array
• The function print_r() dumps out PHP
data - it is used mostly for
debugging
<?php
$stuff = array("name" => "Chuck",
"course" => "PHPIntro");
print_r($stuff);
?>
Array(
[name] => Chuck
[course] => PHPIntro
)
Building up an Array
• You can allocate a new item in the array
and add a value at the same time using
empty square braces [ ] on the right hand
side of an assignment statement
$va = array(); Array(
$va[] = "Hello"; [0] => Hello
$va[] = "World"; [1] => World
print_r($va); )
Building up an Array
• You can also add new items in an array
using a key as well
$za = array(); Array(
$za["name"] = "Chuck"; [name] => Chuck
$za["course"] = "PHPIntro"; [course] =>
PHPIntro print_r($za); )
Looping Through an Array
<?php
$stuff = array("name" => "Chuck",
"course" => "PHPIntro");
foreach($stuff as $k => $v )
{ echo "Key=",$k," Val=",
$v,"\n";
}
?>
Key=name Val=Chuck
Key=course Val=PHPIntro
Arrays of Arrays
$products =
The elements of an array( 'paper'
array can be many => array(
things other than a 'copier' => "Copier & Multipurpose",
'inkjet' => "Inkjet Printer",
string or integer. You 'laser' => "Laser Printer",
can even have 'photo' => "Photographic Paper"),
objects or other 'pens' => array(
'ball' => "Ball Point",
arrays. 'hilite' =>
"Highlighters", 'marker'
=> "Markers"),
'misc' => array(
'tape' => "Sticky
Tape", 'glue' =>
"Adhesives", 'clips' =>
"Paperclips")
echo $products["pens"]["marker"];
);
Markers
Array Functions
AAPP009-4-2 Web Development
Array Functions
• count($ar) - How many elements in an array
• is_array($ar) - Returns TRUE if a variable is an array
• isset($ar['key']) - Returns TRUE if key is set in the
array
• sort($ar) - Sorts the array values (loses key)
• ksort($ar) - Sorts the array by key
• asort($ar) - Sorts array by value, keeping key
association
• shuffle($ar) - Shuffles the array into random
order
$za = array();
$za["name"] = "Chuck";
$za["course"] = "PHPIntro";
print "Count: " . count($za) . "\n";
if ( is_array($za) ) {
echo '$za Is an array' . "\n";
} else {
echo '$za Is not an array' . "\n";
}
echo isset($za['name']) ? "name is set\n" : "name is not set\n";
echo isset($za['addr']) ? "addr is set\n" : "addr is not
set\n";
Count: 2
$za Is an array
name is set
addr is not set
Array(
$za = array(); [name] => Chuck
$za["name"] = "Chuck"; [course] => PHPIntro
$za["course"] = "PHPIntro"; [topic] => PHP
$za["topic"] = "PHP"; )
print_r($za); Array(
sort($za); [0] => Chuck
print_r($za); [1] => PHP
[2] => PHPIntro
)
Array(
$za = array(); [name] => Chuck
$za["name"] = "Chuck"; [course] => PHPIntro
$za["course"] = "PHPIntro"; [topic] => PHP
$za["topic"] = "PHP"; )
print_r($za);
ksort($za); Array(
print_r($za); [course] => PHPIntro
asort($za); [name] => Chuck
print_r($za); [topic] => PHP
)
Array(
[name] => Chuck
[topic] => PHP
[course] => PHPIntro
)
Arrays and Strings
$inp = "This is a sentence with seven
words";$temp = explode(' ', $inp);
print_r($temp);
A
r
r
a
y
(
[
0
]
=
>
PHP Global Variables
• Part of the goal of PHP is to make
interacting with HTTP and HTML as easy
as possible
• PHP processes the incoming HTTP
Request based on the protocol
specifications and drops the data into
various super global variables (usually
arrays)
Summary
• PHP arrays are a very powerful associative array as
they can be indexed by integers like a list, or use keys
to look values up like a hash map or dictionary
• PHP arrays maintain order and there are many options
for sorting
• We can use explode() to split a string into an array of
strings
• HTTP Information is pre-processed and placed in
super global arrays