Hi Zack, the bug will probably lie in a piece of code that you haven't pasted.
It appears that the first piece of code you pasted isn't related to the second in any way. It doesn't show how values end up in $_SESSION or $_SESSION.
Please attach a complete source code and I will have a look.
A suggestion: name your variables in a way that reflects the plurality or singularity of their content. For example, $itemName sounds like this variable holds only one item name. I wouldn't expect an array of item names. For this you should name the variable $itemNames. Little details like this (called naming convention) will help you avoid bugs like assigning an array to a variable that is meant to hold a string (which is probably the core of your current bug).