Selecione o loop dropdown PHP foreach com as opções 'optgroup'

Eu tenho um menu suspenso com um PHP 'foreach' que eu percorro para preencher as opções de seleção. Isso funciona bem. No entanto, o que eu gostaria de fazer é ter várias submarcas usando a opção "optgroup". Na minha matriz retornada, eu tenho um "tipo" de "azul", "verde" e "vermelho". Como posso dividir as opções de seleção em grupos com base no $ album ['type']?

Este é o código que tenho:

$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 é o tipo de coisa que eu gostaria de conseguir dentro do loop 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>

questionAnswers(3)

yourAnswerToTheQuestion