O'Reilly logo

Programming PHP, 3rd Edition by Peter MacIntyre, Kevin Tatroe, Rasmus Lerdorf

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Storing Data in Arrays

Storing a value in an array will create the array if it didn’t already exist, but trying to retrieve a value from an array that hasn’t been defined won’t create the array. For example:

// $addresses not defined before this point
echo $addresses[0];                    // prints nothing
echo $addresses;                       // prints nothing

$addresses[0] = "spam@cyberpromo.net";
echo $addresses;                       // prints "Array"

Using simple assignment to initialize an array in your program can lead to code like this:

$addresses[0] = "spam@cyberpromo.net";
$addresses[1] = "abuse@example.com";
$addresses[2] = "root@example.com";

That’s an indexed array, with integer indices beginning at 0. Here’s an associative array:

$price['gasket'] = 15.29;
$price['wheel'] = 75.25;
$price['tire'] = 50.00;

An easier way to initialize an array is to use the array() construct, which builds an array from its arguments. This builds an indexed array, and the index values (starting at 0) are created automatically:

$addresses = array("spam@cyberpromo.net", "abuse@example.com", "root@example.com");

To create an associative array with array(), use the => symbol to separate indices (keys) from values:

$price = array(
  'gasket' => 15.29,
  'wheel'  => 75.25,
  'tire'   => 50.00
);

Notice the use of whitespace and alignment. We could have bunched up the code, but it wouldn’t have been as easy to read (this is equivalent to the previous code sample), or as easy to add or remove values:

$price = array('gasket' => 15.29, 'wheel' => 75.25, 'tire' => 50.00);

You can ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required