<!doctype html>
<?php
  date_default_timezone_set("America/New_York");
?>
<html lang="en">
  <head>
    <title>How to work with arrays (nested arrays)</title>
    <link href="https://jimgerland.com/includes/css/styles.css" rel="stylesheet" />
    <link href="https://jimgerland.com/includes/css/codestyles.css" rel="stylesheet" />
  </head>
  <body>
    <h1>How to work with arrays of arrays (nested arrays/two-dimensional array)</h1>
    <h2>Code that creates an array of arrays</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      $times_table = array(); // create an empty array<br />
      for ($i = 0; $i <= 12; $i++) {<br />
      &nbsp;&nbsp;for ($j = 0; $j <= 12; $j++) {<br />
      &nbsp;&nbsp;&nbsp;&nbsp;$times_table[$i][$j] = $i * $j;<br />
      &nbsp;&nbsp;}<br />
      }
      </code>
      <?php
      $times_table = array(); // create an empty array
      for ($i = 0; $i <= 12; $i++) { 
        for ($j = 0; $j <= 12; $j++) { 
          $times_table[$i][$j] = $i * $j;
        } 
      }
      ?>
    </div>
    <h2>Code that adds values to the array of arrays</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      for ($i = 0; $i <= 12; $i++) {<br />
      &nbsp;&nbsp;for ($j = 0; $j <= 12; $j++) {<br />
      &nbsp;&nbsp;&nbsp;&nbsp;$times_table[$i][$j] = $i * $j;<br />
      &nbsp;&nbsp;}<br />
      }
      </code>
    </div>
    <h2>Code that refers to elements in the array of arrays</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      echo $times_table[4][3];<br />
      echo $times_table[7][6];
      </code>
      <?php
      echo("<p>\$times_table[4][3] = " . $times_table[4][3] . "<br />\n");
      echo("\$times_table[7][6] = " . $times_table[7][6] . "</p>\n");
      ?>
    </div>
    <h2>Code that creates a cart array</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      $cart = array();<br />
      $item['itemCode'] = 123;<br />
      $item['itemName'] = 'Visual Basic';<br />
      $item['itemCost'] = 57.5;<br />
      $item['itemQuantity'] = 5;<br />
      $cart[] = $item;<br />
      $item['itemCode'] = 456;<br />
      $item['itemName'] = 'Java';<br />
      $item['itemCost'] = 59.5;<br />
      $item['itemQuantity'] = 2;<br />
      $cart[] = $item; // add item array to cart array
      </code>
      <?php
      $cart = array();
      $item['itemCode'] = 123;
      $item['itemName'] = 'Visual Basic';
      $item['itemCost'] = 57.5;
      $item['itemQuantity'] = 5;
      $cart[] = $item;
      $item['itemCode'] = 456;
      $item['itemName'] = 'Java';
      $item['itemCost'] = 59.5;
      $item['itemQuantity'] = 2;
      $cart[] = $item; // add item array to cart array      
      echo("<p>\$cart = ");
      print_r($cart);
      echo("</p>\n");
      ?>
    </div>
    <h2>Code that creates and adds another associative array to the cart array</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      $item = array(); // create an empty item array
      </code>
      <?php
      $item = array(); // create an empty item array
      ?>
    </div>
    <h2>Code that refers to the elements in the array of associative arrays</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      echo $cart[0]['itemCode']; // displays 123<br />
      echo $cart[1]['itemName']; // displays Java 
      </code>
      <?php
      echo("<p>\$cart[0]['itemcode'] = " . $cart[0]['itemCode']); // displays 123
      echo("<br />\n\$cart[1]['itemcode'] = " . $cart[1]['itemName'] . "</p>\n"); // displays Java 
      ?>
    </div>
    <h2>A more concise way to create an array of arrays</h2>
    <div style="font-family: Courier, Arial, Sans-Serif; font-size: large;">
      <code>
      $cart = array(<br />
      &nbsp;&nbsp;array('itemCode' => 123, 'itemName' => 'Visual Basic', 'itemCost' => 57.5, 'itemQuantity' => 5), <br />
      &nbsp;&nbsp;&nbsp;&nbsp;array('itemCode' => 456, 'itemName' => 'Java', 'itemCost' => 59.5, 'itemQuantity' => 2)<br />
      );
      </code>
    </div>
    <ul>
      <li>To refer to the elements in an array of arrays, you use two index values for each element. The first index is for an element in the outer array. The second index is for an element in the inner array.</li>
    </ul>
    <p><a href=".">Back</a></p>
  </body>
</html> 