Bulk Move Users from one site to another within a network ( Multisite )

Here is code I wrote to automatically move the users from site A to site B within a network en masse. May need running twice

<?php

add_action( 'admin_init', 'user_move_init' );
add_action( 'admin_menu', 'user_move_add_page' );

/**
 * Init plugin options to white list our options
 */
function user_move_init(){
    register_setting( 'user_move', 'user_move', 'user_move_validate' );
}

/**
 * Load up the menu page
 */
function user_move_add_page() {
    add_users_page( __( 'User Import', 'user_move' ), __( 'User Import', 'user_move' ), 'edit_theme_options', 'theme_options', 'user_move_do_page' );
}

/**
 * Create the options page
 */
function user_move_do_page() {

    if ( ! isset( $_REQUEST['settings-updated'] ) )
        $_REQUEST['settings-updated'] = false;

    ?>

    <div class="wrap">
        <h2><?php echo __( ' User Network Import', 'user_move' ) ; ?></h2>

        <?php if ( false !== $_REQUEST['settings-updated'] ) : ?>
            <p>Starting transfer</p><?php
            global $wpdb;
            switch_to_blog(2);

            $aUsersID = $wpdb->get_col( $wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users" ));
            /*
            Once we have the IDs we loop through them with a Foreach statement.
            */
            foreach ( $aUsersID as $iUserID ) :
                /*
                We use get_userdata() function with each ID.
                */
                $user = get_userdata( $iUserID );

                $capabilities = $user->{$wpdb->prefix . 'capabilities'};
                if(!empty($capabilities)){

                    if ( !isset( $wp_roles ) ){
                        $wp_roles = new WP_Roles();
                    }
                    $r="";
                    foreach ( $wp_roles->role_names as $role => $name ) :
                        if ( array_key_exists( $role, $capabilities ) ){
                            $r = $role;
                            break;
                        }

                    endforeach;
                }
                if(empty($r)){
                    $r="subscriber";
                }

                /*
                Here we finally print the details wanted.
                Check the description of the database tables linked above to see
                all the fields you can retrieve.
                To echo a property simply call it with $user->name_of_the_column.
                In this example I print the first and last name.
                */
                echo '<li>Transfering '.$user->user_login.' ('. ucwords( strtolower( $user->first_name . ' ' . $user->last_name ) ) . '), '.$r.'</li>';

                add_user_to_blog(1,$iUserID,$r);

                /*
                 The strtolower and ucwords part is to be sure
                 the full names will all be capitalized.
                */
            endforeach;

            restore_current_blog();

            ?><p>Transfer complete</p>

        <?php endif; ?>

        <form method="post" action="options.php">
            <?php settings_fields( 'user_move' ); ?>
            <p>Click to import Users from the blog site to the main site</p>
            <p class="submit">
                <input type="submit" class="button-primary" value="<?php _e( 'Start Import', 'user_move' ); ?>" />
            </p>
        </form>
    </div>
    <?php
}

/**
 * Sanitize and validate input. Accepts an array, return a sanitized array.
 */
function user_move_validate( $input ) {
    return $input;
}