Un condicionl no puede ejecutarse todo...
Si esto se cuple ya esta... Por mas else if que haya.
Y por lo que dices y se ve, se cumple. En fin, es lo primero en cuplirse, ergo el resto de los bloques queda intacto.
Código PHP:
if (!empty($arrayduda2)){
//se ejecuta este trozo y nada mas...
}elseif{
.....