El comportamiento de tu script es normal, pues estás comparando un valor ($v1) con un array ($arrayopciones1) y a no ser que tu variable $v1 sea un array idéntico el resultado va a ser false, que con el "!" lo estás convirtiendo en true. Por eso se ejecuta siempre la sentencia del if.
Para realizar lo que tú quieres tienes que recorrer el array elemento a elemento e ir comprobando si alguno de esos elementos coincide con el valor que estás comparando. Si coincide, modificas una variable ($encontrado) que indique que lo ha encontrado poniéndola a true. Y tras salir del bucle compruebas si esa variable vale true o si por el contrario mantiene su valor original (que será false). Algo así:
Código php:
Ver original$encontrado=false;
$arrayopciones1=array("panel", "registro", "login");
foreach($arrayopciones1 as $elemento){
if ($elemento==$v1)
$encontrado=true;
}
if ($encontrado){
//Aquí ejecutas el código que quieras para cuando coincide alguno de los elementos
}
Espero que te sirva, y sobretodo que lo hayas entendido.
Un saludo