SlideShare a Scribd company logo
PHP Arrays
Dr. Charles Severance
www.wa4e.com
http://www.wa4e.com/code/arrays
http://www.wa4e.com/code/arrays.zip
PHP Arrays Rock!
• Better than Python Dictionaries
• Better than Java Hash Maps
• PHP Arrays have all the benefits of Python Dictionaries
but they can also maintain the order of the items in the
array
http://en.wikipedia.org/wiki/Associative_array
Associative Arrays
• Can be key => value or simply indexed by numbers
• Ignore two-dimensional arrays for now...
http://en.wikipedia.org/wiki/Associative_array
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() shows PHP data - it is good for
debugging
<?php
$stuff = array("name" => "Chuck",
"course" => "PHPIntro");
echo("<pre>n");print_r($something);echo("n</pre>n");
?>
Array(
[name] => Chuck
[course] => PHPIntro
)
Building up an Array
• You can allocate a new item in the array and append a
value at the same time using empty square braces [ ]
on the right hand side of an assignment statement
$va = array();
$va[] = "Hello";
$va[] = "World";
print_r($va);
Array(
[0] => Hello
[1] => World
)
Building up an Array
• You can also add new items in an array using a key as
well
$za = array();
$za["name"] = "Chuck";
$za["course"] = "PHPIntro";
print_r($za);
Array(
[name] => Chuck
[course] => PHPIntro
)
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 = array(
'paper' => array(
'copier' => "Copier & Multipurpose",
'inkjet' => "Inkjet Printer",
'laser' => "Laser Printer",
'photo' => "Photographic Paper"),
'pens' => array(
'ball' => "Ball Point",
'hilite' => "Highlighters",
'marker' => "Markers"),
'misc' => array(
'tape' => "Sticky Tape",
'glue' => "Adhesives",
'clips' => "Paperclips")
);
The elements of an array
can be many things other
than a string or integer.
You can even have
objects or other arrays.
echo $products["pens"]["marker"];
Markers
Array Functions
PHP-04-Arrays.ppt
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 setn" : "name is not setn";
echo isset($za['addr']) ? "addr is setn" : "addr is not setn";
Count: 2
$za Is an array
name is set
addr is not set
$za = array();
$za["name"] = "Chuck";
$za["course"] = "PHPIntro";
$za["topic"] = "PHP";
print_r($za);
sort($za);
print_r($za);
Array(
[name] => Chuck
[course] => PHPIntro
[topic] => PHP
)
Array(
[0] => Chuck
[1] => PHP
[2] => PHPIntro
)
$za = array();
$za["name"] = "Chuck";
$za["course"] = "PHPIntro";
$za["topic"] = "PHP";
print_r($za);
ksort($za);
print_r($za);
asort($za);
print_r($za);
Array(
[name] => Chuck
[course] => PHPIntro
[topic] => PHP
)
Array(
[course] => PHPIntro
[name] => Chuck
[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);
Array(
[0] => This
[1] => is
[2] => a
[3] => sentence
[4] => with
[5] => seven
[6] => words
)
HTTP Parameters and Arrays
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)
http://www.wa4e.com/code/arrays/get-01.php
PHP-04-Arrays.ppt
PHP-04-Arrays.ppt
PHP-04-Arrays.ppt
Web Server Database Server
Time
Apache
PHP
MySql
Browser
JavaScri
pt
D
O
M
php
code
static
files
RRC/HTTP SQL
Parse
Respons
e
Parse
Reques
t
ind.ph
p
$_GET
Validation
• Making sure all user data is present and the correct
format before proceeding
• Non empty strlen($var) > 0
• A number is_numeric($var)
• An email address strpos($var, '@') > 0
• ....
http://www.wa4e.com/code/arrays/guess.php?guess=7
http://www.wa4e.com/code/arrays/guess.php?guess=200
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
Acknowledgements / Contributions
These slides are Copyright 2010- Charles R. Severance
(www.dr-chuck.com) as part of www.wa4e.com and made
available under a Creative Commons Attribution 4.0 License.
Please maintain this last slide in all copies of the document
to comply with the attribution requirements of the license. If
you make a change, feel free to add your name and
organization to the list of contributors on this page as you
republish the materials.
Initial Development: Charles Severance, University of
Michigan School of Information
Insert new Contributors and Translators here including
names and dates
Continue new Contributors and Translators here

More Related Content

Similar to PHP-04-Arrays.ppt (20)

PPT
PHP - Introduction to PHP
Vibrant Technologies & Computers
 
PPT
05php
sahilshamrma08
 
PDF
Introduction to Perl
worr1244
 
PPTX
Introduction to PHP Lecture 1
Ajay Khatri
 
PPT
php
Ramki Kv
 
PPT
php fundamental
zalatarunk
 
PPT
Php introduction with history of php
pooja bhandari
 
PPT
PHP and MySQL with snapshots
richambra
 
PPTX
UNIT IV (4).pptx
DrDhivyaaCRAssistant
 
PPTX
Regular expressions, Session and Cookies by Dr.C.R.Dhivyaa Kongu Engineering ...
Dhivyaa C.R
 
PPT
Php basics
hamfu
 
PPTX
Php
ayushchugh47
 
PDF
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
PPTX
PHP for hacks
Tom Praison Praison
 
PDF
Scripting3
Nao Dara
 
PDF
New SPL Features in PHP 5.3
Matthew Turland
 
PDF
Introduction to Perl and BioPerl
Bioinformatics and Computational Biosciences Branch
 
PDF
Php Introduction nikul
Nikul Shah
 
PPTX
Substitution Cipher
Agung Julisman
 
PHP - Introduction to PHP
Vibrant Technologies & Computers
 
Introduction to Perl
worr1244
 
Introduction to PHP Lecture 1
Ajay Khatri
 
php fundamental
zalatarunk
 
Php introduction with history of php
pooja bhandari
 
PHP and MySQL with snapshots
richambra
 
UNIT IV (4).pptx
DrDhivyaaCRAssistant
 
Regular expressions, Session and Cookies by Dr.C.R.Dhivyaa Kongu Engineering ...
Dhivyaa C.R
 
Php basics
hamfu
 
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
PHP for hacks
Tom Praison Praison
 
Scripting3
Nao Dara
 
New SPL Features in PHP 5.3
Matthew Turland
 
Introduction to Perl and BioPerl
Bioinformatics and Computational Biosciences Branch
 
Php Introduction nikul
Nikul Shah
 
Substitution Cipher
Agung Julisman
 

Recently uploaded (20)

PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
July Patch Tuesday
Ivanti
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
July Patch Tuesday
Ivanti
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Ad

PHP-04-Arrays.ppt

  • 1. PHP Arrays Dr. Charles Severance www.wa4e.com http://www.wa4e.com/code/arrays http://www.wa4e.com/code/arrays.zip
  • 2. PHP Arrays Rock! • Better than Python Dictionaries • Better than Java Hash Maps • PHP Arrays have all the benefits of Python Dictionaries but they can also maintain the order of the items in the array http://en.wikipedia.org/wiki/Associative_array
  • 3. Associative Arrays • Can be key => value or simply indexed by numbers • Ignore two-dimensional arrays for now... http://en.wikipedia.org/wiki/Associative_array
  • 4. Integer Indices <?php $stuff = array("Hi", "There"); echo $stuff[1], "n"; ?> There
  • 5. Key / Value <?php $stuff = array("name" => "Chuck", "course" => "PHPIntro"); echo $stuff["course"], "n"; ?> PHPIntro
  • 6. Dumping an Array • The function print_r() shows PHP data - it is good for debugging <?php $stuff = array("name" => "Chuck", "course" => "PHPIntro"); echo("<pre>n");print_r($something);echo("n</pre>n"); ?> Array( [name] => Chuck [course] => PHPIntro )
  • 7. Building up an Array • You can allocate a new item in the array and append a value at the same time using empty square braces [ ] on the right hand side of an assignment statement $va = array(); $va[] = "Hello"; $va[] = "World"; print_r($va); Array( [0] => Hello [1] => World )
  • 8. Building up an Array • You can also add new items in an array using a key as well $za = array(); $za["name"] = "Chuck"; $za["course"] = "PHPIntro"; print_r($za); Array( [name] => Chuck [course] => PHPIntro )
  • 9. 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
  • 10. Arrays of Arrays $products = array( 'paper' => array( 'copier' => "Copier & Multipurpose", 'inkjet' => "Inkjet Printer", 'laser' => "Laser Printer", 'photo' => "Photographic Paper"), 'pens' => array( 'ball' => "Ball Point", 'hilite' => "Highlighters", 'marker' => "Markers"), 'misc' => array( 'tape' => "Sticky Tape", 'glue' => "Adhesives", 'clips' => "Paperclips") ); The elements of an array can be many things other than a string or integer. You can even have objects or other arrays. echo $products["pens"]["marker"]; Markers
  • 13. 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
  • 14. $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 setn" : "name is not setn"; echo isset($za['addr']) ? "addr is setn" : "addr is not setn"; Count: 2 $za Is an array name is set addr is not set
  • 15. $za = array(); $za["name"] = "Chuck"; $za["course"] = "PHPIntro"; $za["topic"] = "PHP"; print_r($za); sort($za); print_r($za); Array( [name] => Chuck [course] => PHPIntro [topic] => PHP ) Array( [0] => Chuck [1] => PHP [2] => PHPIntro )
  • 16. $za = array(); $za["name"] = "Chuck"; $za["course"] = "PHPIntro"; $za["topic"] = "PHP"; print_r($za); ksort($za); print_r($za); asort($za); print_r($za); Array( [name] => Chuck [course] => PHPIntro [topic] => PHP ) Array( [course] => PHPIntro [name] => Chuck [topic] => PHP ) Array( [name] => Chuck [topic] => PHP [course] => PHPIntro )
  • 17. Arrays and Strings $inp = "This is a sentence with seven words"; $temp = explode(' ', $inp); print_r($temp); Array( [0] => This [1] => is [2] => a [3] => sentence [4] => with [5] => seven [6] => words )
  • 19. 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)
  • 24. Web Server Database Server Time Apache PHP MySql Browser JavaScri pt D O M php code static files RRC/HTTP SQL Parse Respons e Parse Reques t ind.ph p $_GET
  • 25. Validation • Making sure all user data is present and the correct format before proceeding • Non empty strlen($var) > 0 • A number is_numeric($var) • An email address strpos($var, '@') > 0 • ....
  • 28. 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
  • 29. Acknowledgements / Contributions These slides are Copyright 2010- Charles R. Severance (www.dr-chuck.com) as part of www.wa4e.com and made available under a Creative Commons Attribution 4.0 License. Please maintain this last slide in all copies of the document to comply with the attribution requirements of the license. If you make a change, feel free to add your name and organization to the list of contributors on this page as you republish the materials. Initial Development: Charles Severance, University of Michigan School of Information Insert new Contributors and Translators here including names and dates Continue new Contributors and Translators here

Editor's Notes

  • #2: Note from Chuck. If you are using these materials, you can remove my name and URL from this replace it with your own, but please retain the CC-BY logo on the first page as well as retain the entire last page when you remix and republish these slides.
  • #30: Note from Chuck. Please retain and maintain this page as you remix and republish these materials. Please add any of your own improvements or contributions.