¿Por qué mi matriz multidimensional PHP no funciona?

Mi matriz multidimensional está funcionando. Pero parece que no puedo usarexplode oin_array para limitar la matriz al llamar a través de$_GET

<?
$shop = array(
array("red", "black", "blue", "green"),
array("orange"),
array("orange", "black"),
array("pink", "yellow")
);

foreach ($shop as $rowNumber => $row)
{
    echo "<li><b>The row number $rowNumber</b>";
        echo "<ul>";
        foreach ($row as $col) {
            if (in_array($col, explode(' and ', $_GET['filter']))){
                echo "<li>".$col."</li>";
            }
        }
        echo "</ul>";
    echo "</li>";
}

?>

Si ejecuto el script con$_GET["filter"]=="black" muestra todos los elementos; solo debería mostrar dos, por ejemplo, esto es incorrecto: las otras filas no deberían aparecer:

debería ser esto en su lugar

Respuestas a la pregunta(4)

Su respuesta a la pregunta