session_unset() will clear the $_SESSION variable (as in array()), but it won't touch the session file. But when the script ends; the state of the $_SESSION will be written to the file. Then it will clear the file but won't delete it. When you use session_destroy() it won't touch $_SESSION (Use var_dump($_SESSION) after session_destroy()), but will delete the session file, so when script exits there won't be a file to write the state of the $_SESSION.
I tried to use session_unset($_SESSION['session_name']) thinking it will only unset specific or individual/single session name. But using session_unset($_SESSION['session_name']) will only unset all session name. The right code to use is only unset($_SESSION['session_name']) if you want to unset a single session name.
> unset($_SESSION['me']); #only 'me' variable is removed fully (index & value)
> print_r($_SESSION); #now the array is Array("you"=>"Avi")
test2
> session_destroy(); #will unset the values of all session variables, but indexes exists
> print_r($_SESSION); #Output, Array("you"=>undefined)
> #but some browser can store the value in cookies
test3
> session_unset(); #will unset all the main variables not only the values
> print_r($_SESSION); #that means session array is now empty, like Array()
test block 1, 2, or 3 at individually by comment out others