¿Cómo puedo cambiar mi matriz, que afecta directamente a mi bucle foreach?

Recorro una matriz, que tengo, usando un bucle foreach. Sin embargo, dentro del bucle foreach necesito modificar la matriz, para que afecte directamente a mi bucle foreach.

Así que haré un ejemplo de mi problema:

<?php

    $array = ["Red", "Yellow", "Blue", "Orange"];

    foreach($array as $color) {
        if(($key = array_search("Blue", $array)) !== false) 
            unset($array[$key]);

        echo $color . "<br>";

    }

?>

salida:

Red
Yellow
Blue
Orange

Entonces como puedes ver younset() el elemento de matriz con el valorBlue. Pero todavía lo tengo en mi salida.

Ahora mi pregunta es: ¿Cómo puedo desarmar el elemento con el valor?Blue, de modo quedirectamente afecta mi bucle foreach, significa que ya no lo veré en la salida, ya que lo eliminéantes de Doy vueltas sobre ese elemento específico.

La salida esperada sería (Nota: el azul no está en la salida):

Red
Yellow
Orange

Respuestas a la pregunta(1)

Su respuesta a la pregunta