PHP Tutorial Tutorials - PHP Array

PHP Arrays

An array in PHP is actually an ordered map. A map is a type that associates values to keys.
The array is used to store one or more similar type of values in a single value.

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

Each map is a key-value pair.

Array Syntax

The key as also known as array index.
The key can either be an integer or a string.
The value can be of any type.

<?php
$fruits = array(1=>"Apple", 2=>"Orange", 3=>"Pear"); // the keys are integers (also known as Indexed Arrays)
 
$colors = array( // the keys are strings (also known as Associative Arrays)
    "Red" => "#F00",
    "Green" => "#0F0",
    "Blue" => "#00F",
);
?>
  • Indexed array — the keys are integers
  • Associative array — the keys are strings
  • Multidimensional array — An array of arrays

short array syntax (php5.4+)

short array syntax replaces array() with [].

<?php
$fruits = array("Apple", "Orange", "Pear");
$fruits = ["Apple", "Orange", "Pear"];
?>

The comma after the last array element is optional and can be omitted.

<?php
array(1, 2, ); // The comma is usually omitted for single-line arrays
array(1, 2);
$colors = array( // The comma is usually used for easier addition of new elements at the end
    "Red" => "#F00",
    "Green" => "#0F0",
    "Blue" => "#00F",
);
$colors = array(
    "Red" => "#F00",
    "Green" => "#0F0",
    "Blue" => "#00F",
    "Cyan" => "#00ffff",
);
?>

Access the array value

Array elements can be accessed using the array[key] syntax.

<?php
$fruits = array(1=>"Apple", 2=>"Orange", 3=>"Pear"); 
$colors = array(
    "Red" => "#F00",
    "Green" => "#0F0",
    "Blue" => "#00F",
);
var_dump($fruits[2]);
var_dump($colors["Blue"]);
?>

Output:

string(6) "Orange"
string(4) "#00F"

Modify the array

An existing array can be modified by assigning values to the array.
$arr[key] = value;
$arr[] = value;

<?php
$arr = array( 1, 8 => 2);

$arr[0] = 6; // Change the first element value to 6

$arr[] = 3;    // This is the same as $arr[9] = 3;
                // at this point of the script

var_dump($arr);

Output;

array(3) {
  [0]=>
  int(6)
  [8]=>
  int(2)
  [9]=>
  int(3)
}

Remove array elements

To remove a key/value pair, call the unset() function on it.
Be aware that the array will not be reindexed.

<?php
    $array = array(1, 2, 3, 4, 5);
    print_r($array);

    unset($array[3]); // This removes the fourth element from the array
    print_r($array);

    unset($array);    // This deletes the whole array
    print_r($array);
?>

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [4] => 5
)
<br />
<b>Notice</b>:  Undefined variable: array in <b>D:\Apache24\htdocs\index.php</b> on line <b>9</b><br />

Displays information about Array

Use var_dump() and print_r() to print human-readable information about array.

$fruits = array(1=>"Apple", 2=>"Orange", 3=>"Pear"); // the keys are integers
var_dump($fruits);
echo "<br>";
 
$colors = array( // the keys are strings
    "Red" => "#F00",
    "Green" => "#0F0",
    "Blue" => "#00F"
);
print_r($colors);

The key is other data type

<?php
$array = array(
    12   => "a", // 12,    Canonical Syntax, an integer
    -12  => "b", // -12,   Canonical Syntax, key could be a negative  integer
    "foo" => "c",// "foo", Canonical Syntax, a string
    "3"  => "d", // 3,     Decimal integers string,will be cast to the integer type
    "03" => "e", // "03",  Not valid decimal integer
    "+3" => "f", // "+3",  the key is string type
    "3C" => "g", // "3C",  the key is string type
    6.8  => "h", // 6,     the fractional part will be truncated
    true => "i", // 1,     be cast to the integers.true for 1, false for 0
    null => "j", // "",    Null will be cast to the empty string.
    // Array() => "k",     Arrays can not be used as keys,Illegal offset type. 
    // (New obj) => "l",   Objects can not be used as keys,Illegal offset type. 
);
var_dump($array);
?>

Array Keys are unique

Each array index is unique and references a corresponding value.
If there are same keys, only the last one will be used. all others are overwritten.

<?php
$array = array(
    1    => "a",
    1    => "b",
    "1"  => "c",
    true => "d",
);
var_dump($array);
?> 

Output:

array(1) {
  [1]=>
  string(1) "d"
}

Indexed arrays without key

The key is optional.
the indexes are automatically assigned and start with 0.

<?php
    $fruits = array("Apple", "Orange", "Pear");
    var_dump($fruits);
?>

Output:

array(3) {
  [0]=>
  string(5) "Apple"
  [1]=>
  string(6) "Orange"
  [2]=>
  string(4) "Pear"
}

Keys not on all elements

If the key is not specified, PHP will use the increment of the largest previously used integer key.

<?php
    $fruits = array(
        "Apple", 
        "Orange", 
     5=>"Pear",
        "Banana",
    );
    var_dump($fruits);
?>

Output:

array(4) {
  [0]=>
  string(5) "Apple"
  [1]=>
  string(6) "Orange"
  [5]=>
  string(4) "Pear"
  [6]=>
  string(6) "Banana"
}

Array Mixed integer and string keys

<?php
$array = array(
    "foo" => "Apple",
    3   => 90,
);
var_dump($array);
?>
array(4) {
  ["foo"]=>
  string(5) "Apple"
  [3]=>
  int(90)
}

Multidimensional Arrays

The array's element can be another array.

$transcripts = array(
    "bob" => array(
        "Mathematics" => "B",
        "Management" => "A",
    ),
    "jack" => array(
        "Mathematics" => "A",
        "Management" => "A+",
    ),
    "dennis" => array(
        "Mathematics" => "C",
        "Management" => "C+",
    ),
);

Values in the multi-dimensional array are accessed using multiple index.

/* Accessing multi-dimensional array values */
echo $transcripts['bob']['Management'];
// Output: A
Date:2019-10-01 02:44:35 From:www.Lautturi.com author:Lautturi