Hola,
Olvidate del foreach y usa el NOT IN de MySQL, en combinacion del implode() de PHP. La consulta que te devuelve los registros que no estan en el array es:
Código PHP:
$sql = "SELECT * from $tabla where DAYOFMONTH(Fecha) BETWEEN $bdy AND $edy AND MONTH(Fecha) IN ($bmo,$emo) AND PP NOT IN (".implode(",",$NivOblig).")";
Luego solo tienes que recorrer el resultado de esa consulta.
Suerte.