Think about it a little bit:
Step 1) Create the array of user requested session variables like this.
//assuming this is inside the section where you're processing the
//form input
//set up an array with the form variables you don't want to
//process. i.e. the button variable
$dontUse = array('name1','name2','etc');
$myVars = array();
foreach(array_keys($_POST) as $curInput) {
//skip processing of specified keys
if(!in_array($curInput,$dontUse)) {
//figure out which ones to the user wants, this assumes they
//are checkboxes with a value of 1
if($_POST[$curInput]) {array_push($myVars,$curInput);}
} //end if
} //end foreach
//at this point $myVars is an array that holds all the variables the
//user wants to put into session variables. Now we can create the
//session array as posted above
//start the session
session_start();
//start building the array
foreach($myVars as $curVar) {
$_SESSION['UserSelected'][$curVar] = $$curVar;
} //end foreach
//close and write the session
session_write_close();
This could be done much more efficiently with a single foreach loop but I broke it out this way to demonstrate what I'm doing more clearly. I would recommend making it a single foreach loop before implementation. No I'm not goint to do that for you.
Edit: fixed error.