WordPress Menu Exchange On Tablet’s Orientation

cybmeta is right you cannot trust server-side browser detection

<div class="portrait">
 wp_nav_menu( array('menu' => 'primary' ) );
</div>

<div class="mobile">
 wp_nav_menu( array('menu' => 'mobile' ) );
</div>

<div class="primary">
 wp_nav_menu( array('menu' => 'primary' ) );
</div>

and use media queries to hide and display menu