Seleccione Dropdown PHP foreach loop con las opciones 'optgroup'

Tengo un menú desplegable con un PHP 'foreach' que recorro para completar las opciones seleccionadas. Esto funciona bien Sin embargo, lo que me gustaría hacer es tener varias subetiquetas usando la opción "optgroup". En mi matriz devuelta, tengo un "tipo" de "azul", "verde" y "rojo". ¿Cómo puedo dividir las opciones de selección en grupos según el $ álbum ['tipo']?

Este es el código que tengo:

$query = mysql_query("SELECT * FROM background_albums);
$albums = array();
while($row = mysql_fetch_assoc($query)) {
    array_push($albums, $row);
}

<select name="backgroundList" id="backgroundList">
  <? foreach($albums as $album) { ?>
    <option value="<?=($row['id']);?>"><?=$row['title'];?></option>
  <? } ?>
</select>

Este es el tipo de cosas que me gustaría lograr dentro del bucle foreach:

if ($album['type'] == 'green')...

<optgroup label="Green Backgrounds">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
</optgroup>

if ($album['type'] == 'blue')...

<optgroup label="Blue Backgrounds">
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
</optgroup>

Respuestas a la pregunta(3)

Su respuesta a la pregunta