Indexed arrays store ordered values at numeric positions.

array index PHP indexed arrays use zero-based positions, so index `1` reads the second value.

Indexed Arrays

first
indexed_arrays.php
Replay: real traced execution (multi-file project)
<?php
$first = "red";
$count = count([$first, "white", "black"]);
$selected = [$first, "white", "black"][1];

echo "first=" . $first . "\n";
echo "selected=" . $selected . "\n";
echo "count=" . $count . "\n";
<?php
$first = "blue";
$count = count([$first, "white", "black"]);
$selected = [$first, "white", "black"][1];

echo "first=" . $first . "\n";
echo "selected=" . $selected . "\n";
echo "count=" . $count . "\n";
<?php
$first = "green";
$count = count([$first, "white", "black"]);
$selected = [$first, "white", "black"][1];

echo "first=" . $first . "\n";
echo "selected=" . $selected . "\n";
echo "count=" . $count . "\n";
  1. $first ← red, $count ← 3, $selected ← white

    1<?php2$first→ red = "red"; //@first="blue", "green"3$count→ 3 = count([$firstred, "white", "black"]);4$selected→ white = [$first, "white", "black"][1]white;56echo "first=" . $firstred . "\n";7echo "selected=" . $selectedwhite . "\n";8echo "count=" . $count3 . "\n";
    outputfirst=red
    selected=white
    count=3
  1. $first ← blue, $count ← 3, $selected ← white

    1<?php2$first→ blue = "blue";3$count→ 3 = count([$firstblue, "white", "black"]);4$selected→ white = [$first, "white", "black"][1]white;56echo "first=" . $firstblue . "\n";7echo "selected=" . $selectedwhite . "\n";8echo "count=" . $count3 . "\n";
    outputfirst=blue
    selected=white
    count=3
  1. $first ← green, $count ← 3, $selected ← white

    1<?php2$first→ green = "green";3$count→ 3 = count([$firstgreen, "white", "black"]);4$selected→ white = [$first, "white", "black"][1]white;56echo "first=" . $firstgreen . "\n";7echo "selected=" . $selectedwhite . "\n";8echo "count=" . $count3 . "\n";
    outputfirst=green
    selected=white
    count=3

Follow the Array

  1. $first starts as red.
  2. The array is red, white, black.
  3. Index 1 selects white.
  4. count(...) returns 3.
  5. The program prints first=red, selected=white, and count=3. | first | selected | count | | --- | --- | --- | | red | white | 3 | | blue | white | 3 | | green | white | 3 |

Exercise: indexed_arrays.php

Reproduce selected=white and count=3, then use the pinned first values blue and green to predict which output changes.