PHP Arrays Storing Multiple Elements per Key in an Array - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Arrays Storing Multiple Elements per Key in an Array - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Friday, May 17, 2019

PHP Arrays Storing Multiple Elements per Key in an Array

PHP Arrays



Storing Multiple Elements per Key in an Array

Problem

You want to associate multiple elements with a single key.

Solution

Store the multiple elements in an array:

              $fruits = array('red' => array('strawberry','apple'),
                                      'yellow' => array('banana'));

Or use an object:
   
              while ($obj = mysqli_fetch_assoc($r)) {
                     $fruits[] = $obj;
              }

Discussion

In PHP, keys are unique per array, so you can’t associate more than one entry in a key without overwriting the old value. Instead, store your values in an anonymous array:

              $fruits = array();
              $fruits['red'][] = 'strawberry';
              $fruits['red'][] = 'apple';
              $fruits['yellow'][] = 'banana';

              print_r($fruits);

This prints:

              Array
              (
                      [red] => Array
                            (
                                    [0] => strawberry
                                    [1] => apple
                            )
                      [yellow] => Array
                            (
                                    [0] => banana
                            )
              )

Or, if you’re processing items in a loop:

              while (list($color,$fruit) = mysqli_fetch_assoc($r)) {
                      $fruits[$color][] = $fruit;
              }

To print the entries, loop through the array:

              foreach ($fruits as $color => $color_fruit) {
                      // $color_fruit is an array
                      foreach ($color_fruit as $fruit) {
                            print "$fruit is colored $color.<br>";
                      }
              }

Or use the array_to_comma_string() function:

              foreach ($fruits as $color => $color_fruit) {
                      print "$color colored fruits include " .
                            array_to_comma_string($color_fruit) . "<br>";
              }


No comments:

Post a Comment

Post Top Ad