`array_slice($_SESSION['hobby'], 0, 4, TRUE)`の中身をよく確認してみましょう！
おそらく意図しない値も入っていると思います。
また、この記述では`$_SESSION['hobby'][$key]`ではなく`$value`で判定できます。
上の対応が終わってからでよいので、対応してみてください。
配列操作系の関数はバグを生みやすいので注意しましょう(何回かバグ対応で辛い思いをしてきたので。。)