Delicious Bookmark this on Delicious

PHP array and array of arrays - PHP array


Using the PHP function array() in order to create an array

  • An array is a table of values which have been assigned to certain keys (a key is also called an "index").
  • A key can be an integer or a string.
  • The syntax to follow with the function array() is:
    array(key1 => value1,...,keyn => valuen)

Learn the PHP code:

<?php
$my_array = array(1, TRUE, 3 => 'john', 5);
print_r($my_array);
?>


Remark:

The function print_r() displays the array in a human-readable format (print_r stands for "print readable").


Run the PHP script in your web browser:

Creating arrays in PHP


Explanation:

  • By default, in the absence of a key, the array function will choose the rank of the value in the array() declaration: for instance, TRUE is the second value declared, therefore it will automatically be assigned to the key 1 (remember that the first key is 0, and not 1).
  • The value 'john' is assigned to the key 3. Afterwards, by default, in absence of explicit keys, the key 4 will be automatically chosen (because the last key assigned was key 3); the key 2 will therefore be left unassigned, unless you explicitly do it.
  • When a value is explicitly assigned to a negative integer key (which is allowed), the next key to be assigned by default (if no explicit key is given) is the key 0.

    Learn the PHP code:

    <?php
    $a = array(-5 => 3, 2, -4 => 4);
    print_r($a);
    ?>



    Run the PHP script in your web browser:

    Negative keys in PHP arrays

  • If two different values have been assigned to the same key, the last value assigned will prevail.
  • It is possible to use string keys at the same time as integer keys:


    Learn the PHP code:

    <?php
    $my_array = array(1, TRUE, 3 => 'john', 'other' => 8, 5);
    print_r($my_array);
    ?>


    Run the PHP script in the web browser:

    String keys for PHP arrays


    Remark:

    Just like before, the 5th value assigned (which happens to be a 5) will be automatically assigned to the key 4 (since the last integer key to be assigned was 3).

Computer Forums

Using the square brackets syntax in order to create or modify an array

The value of an array A associated with a given key n (respectively with a string key 'key') is designated by $A[n] (respectively by $A['key']).
Reciprocally, you can very well define your array by assigning values to keys on a case by case basis:


Learn the PHP code:

<?php
$my_array = array(1, TRUE, 3 => 'john', 'other' => 8, 5);
echo $my_array[3].'<br>';
$my_array['other']='new';
print_r($my_array);
?>


Run the PHP script in your web browser:

Creating arrays in PHP



Computer Forums

PHP array and array of arrays - PHP array of arrays


We have seen that an array is a map assigning values to keys. There is no restriction on the type of values: in particular, such values can be arrays themselves. In this case, we will say that we have an array of arrays, which roughly corresponds to a multidimensional table (matrix). The example below gives the example of a 2-dimensional PHP array which replicates the 3 x 3 multiplication table:


Learn the PHP code:

<?php
$my_array = array(1 => array(1 => 1, 2 => 2, 3 => 3), 2 => array(1 => 2, 2 => 4, 3 => 6), 3 => array(1 => 3, 2 => 6, 3 => 9));
echo '2 x 3 = '.$my_array[2][3];
?>


Run the PHP script in your web browser:

Array of arrays in PHP


Remark:

By the same token, you can define an array of array of arrays, etc ... by induction.



Computer Forums

PHP array and array of arrays - PHP array functions


There exist a lot of array functions; we will introduce here a couple of them. The interested reader will be able to find the exhaustive list of PHP array functions in the PHP manual.


The sizeof function

sizeof($array) returns the number of elements contained in $array.



The implode function

The implode() function is a very useful one; it allows you to return the values of an array as a string, each of the values being separated by a string called the glue parameter (which can be a comma, for instance).
The syntax is given by implode($array,glue_parameter).



Learn the PHP code:

<?php
$array2 = array(1 => 'one', 2 => 'two');
$result = implode($array2,' , ');
echo $result;
?>


Run the PHP script in your web browser:

PHP implode function



The explode function

The explode() function is the reciprocal function of implode(): given a string $string and a delimiter $delimiter (which is a string acting as a separator, for instance a comma), explode($string,$delimiter) will return an array composed of the substrings of $string which are delimited by the separator $delimiter.
Let's now try to reconstruct the array from the example above by using the explode() function.



Learn the PHP code:

<?php
$delimiter = ' , ';
$string = 'one , two';
$result = explode($delimiter, $string);
echo $result; ?>



Run the PHP script in your web browser:

PHP array explode function


Computer Forums

PHP array and array of arrays - PHP array operators


You can use for arrays most of the operators that were defined in the previous tutorial (==, ===, !=, !==); you can also use the operator + which denotes the union of two arrays: $array1 + $array2 will transfer all the values of $array2 into $array1 (if two values are assigned to the same key, the value from $array1 will be preserved).


Learn the PHP code:

<?php
$array1 = array(1 => 'one');
$array2 = array(1 => 'other', 2 => 'two');
$array = $array1 + $array2;
print_r($array);
?>



Run the PHP script in your web browser:

Union of two arrays in PHP


Remark:

If instead of printing $array1 + $array2 you decide to print $array2 + $array1, the value assigned to key 1 will be 'other' instead of 'one'.

PHP arrays are a useful way to handle series of variables; they come with a lot of php array functions and operators which make such series very convenient to manipulate.


Computer Forums

Next tutorial: PHP strings
Previous tutorial: PHP operators

Back to computer forums