You want to associate multiple elements with a single key.
Store the multiple elements in an array:
1 2 |
$fruits = array('red' => array('strawberry','apple'), 'yellow' => array('banana')); |
Or use an object:
1 2 3 |
while ($obj = mysqli_fetch_assoc($r)) { $fruits[] = $obj; } |
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:
1 2 3 4 5 6 |
$fruits = array(); $fruits['red'][] = 'strawberry'; $fruits['red'][] = 'apple'; $fruits['yellow'][] = 'banana'; print_r($fruits); |
This prints:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Array ( [red] => Array ( [0] => strawberry [1] => apple ) [yellow] => Array ( [0] => banana ) ) |
Or, if you’re processing items in a loop:
1 2 3 |
while (list($color,$fruit) = mysqli_fetch_assoc($r)) { $fruits[$color][] = $fruit; } |
To print the entries, loop through the array:
1 2 3 4 5 6 |
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:
1 2 3 4 |
foreach ($fruits as $color => $color_fruit) { print "$color colored fruits include " . array_to_comma_string($color_fruit) . "<br>"; } |