Values and Types
Associative Arrays
Associative arrays map string keys to values.
associative key
An associative array key can be a string, letting code look up values by name.
Associative Arrays
associative_arrays.php
Replay: real traced execution (multi-file project)
<?php
$item = "apple";
$price = ["apple" => 2, "banana" => 3, "pear" => 4][$item];
$label = $item . ":" . $price;
echo "item=" . $item . "\n";
echo "price=" . $price . "\n";
echo "label=" . $label . "\n";
<?php
$item = "banana";
$price = ["apple" => 2, "banana" => 3, "pear" => 4][$item];
$label = $item . ":" . $price;
echo "item=" . $item . "\n";
echo "price=" . $price . "\n";
echo "label=" . $label . "\n";
<?php
$item = "pear";
$price = ["apple" => 2, "banana" => 3, "pear" => 4][$item];
$label = $item . ":" . $price;
echo "item=" . $item . "\n";
echo "price=" . $price . "\n";
echo "label=" . $label . "\n";
$item ← apple, $price ← 2, $label ← apple:2
1<?php2$item→ apple = "apple"; //@item="banana", "pear"3$price→ 2 = ["apple" => 2, "banana" => 3, "pear" => 4][$item]2;4$label→ apple:2 = $itemapple . ":" . $price2;56echo "item=" . $itemapple . "\n";7echo "price=" . $price2 . "\n";8echo "label=" . $labelapple:2 . "\n";outputitem=apple price=2 label=apple:2
$item ← banana, $price ← 3, $label ← banana:3
1<?php2$item→ banana = "banana";3$price→ 3 = ["apple" => 2, "banana" => 3, "pear" => 4][$item]3;4$label→ banana:3 = $itembanana . ":" . $price3;56echo "item=" . $itembanana . "\n";7echo "price=" . $price3 . "\n";8echo "label=" . $labelbanana:3 . "\n";outputitem=banana price=3 label=banana:3
$item ← pear, $price ← 4, $label ← pear:4
1<?php2$item→ pear = "pear";3$price→ 4 = ["apple" => 2, "banana" => 3, "pear" => 4][$item]4;4$label→ pear:4 = $itempear . ":" . $price4;56echo "item=" . $itempear . "\n";7echo "price=" . $price4 . "\n";8echo "label=" . $labelpear:4 . "\n";outputitem=pear price=4 label=pear:4
Follow the Lookup
$itemstarts asapple.- The price map has apple
2, banana3, and pear4. - Looking up
$price[$item]gives2. $labelbecomesapple:2.- The program prints
item=apple,price=2, andlabel=apple:2. | item | price | label | | --- | --- | --- | | apple | 2 | apple:2 | | banana | 3 | banana:3 | | pear | 4 | pear:4 |
Exercise: associative_arrays.php
Reproduce label=apple:2, then use the pinned items banana and pear to predict each price and label.